2015-02-04 28 views
-4

我正在写一个程序,必须从文件中拉出一行文本,并检查字母C是否在所述行中。我试图使用fgets()从行中提取我需要的文本,但迄今为止完全无法产生任何输出。如何使用fgets()从文件中拉出一行文本?

这里是我试过的代码:

fgets(char 1, int maxlen, FILE input_file) 

它是从拉动输入文件名为input_file和中被格式化为文本如下:

25,F 
32,F 
-40,C 
-20,C 
-20,F 
-40,F 
0,C 

谁能告诉我是什么我做错了?

+7

你写的代码是无效的C. – Axalo

+1

'char buf [100]; if(fgets(buf,sizeof buf,stdin)!= NULL){' – chux

回答

1

对于函数调用,代码需要传递值而不是变量声明。

一定要检查fgets()的结果和执行的任何解析。

FILE *ifile; 
// add code to open file 
char buf[100]; 

// fgets(char 1, int maxlen, FILE input_file) 
while (fgets(buf, sizeof buf, ifile) != NULL) { 
    int temp; 
    char scale; 
    if (2 != sscanf(buf, "%d , %c", &temp, &scale) { 
    // Oops, bad input 
    break; 
    } 

    // Do something with data 
    printf("Temperature %d degrees %c\n", temp,scale); 
} 

// code to close file 
相关问题