fgets产生编译错误“忽略'fgets'的返回值,用属性wan_unused_result声明”

时间:2016-09-02 13:14:05

标签: c arrays string

我使用“gcc -O -Wall -Werror”编译我的代码,在搜索论坛后,我试图使fgets函数也无效。我最初尝试没有void。似乎没什么用。顶行是不起作用的特定代码行。

(void) fgets(diceString, 300, stdin);
diceString[strlen(diceString) - 1] = '\0';

使用以下方法检查它的解决方案也没有按照类似的问题工作。

if(fgets(diceString, 300, stdin) ){

我还将提供下面整个代码的上下文

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define INCORRECT_FORMAT    0
#define OUT_OF_RANGE        1
#define INC_NUM_VALUES      2

#define TRUE                1
#define FALSE               0

int main(int argc, char *argv[]){

    char diceString[300] = {0};
    int diceNum[5] = {0};
    int errorType[3] = {0};
    int valueCounter = 0;

    (void) fgets(diceString, 300, stdin);
    diceString[strlen(diceString) - 1] = '\0';


    int i = 0;
    int j = 0;
    char ch = 0;

    while(diceString[i] != '\0'){
        if(diceString[i] <= '6' && diceString[i] >= '1'){
            ch = diceString[i];
            diceNum[j] = ch - '0';
            j++;
            valueCounter++;
        }
        if(valueCounter >5){
            errorType[INC_NUM_VALUES] = TRUE;
        }if( i < 4  && diceString[i+1] != ' '){
            errorType[INCORRECT_FORMAT] = TRUE;
        }if( i > 0 && diceString[i-1] != ' '){
            errorType[INCORRECT_FORMAT] = TRUE;
        }

        i++;


    }

    printf("The errors are :\n");
    i = 0;
    while(i < 3){
        printf("%d", errorType[i]);
        i++;
    }
    i = 0;
    while(i<5){
        printf("%d\n",diceNum[i]);
        i++;
    }




    return 0;
}

0 个答案:

没有答案