我正在使用fscanf();
读取char的文本文件char我试图将我的FILE指针传递给一个函数,继续在那里阅读,但是我陷入了一个循环。
void keepReading(FILE *fp){
char c;
fscanf(fp, "%c", &c);
}
/* main */
fscanf(fp, "%c", &c);
while(c!='A'){
keepReading(fp);
}
有什么想法吗?
答案 0 :(得分:2)
c
中的变量keepReading()
是该函数的本地变量。将值返回到循环并测试
char keepReading(FILE *fp){
char c;
fscanf(fp, "%c", &c);
return c;
}
/* main */
fscanf(fp, "%c", &c);
while(c!='A'){
c = keepReading(fp);
}
答案 1 :(得分:0)
不要使用fscanf
,如果要逐个字符地读取文件,请使用读取字符fgetc
的函数。 fscanf
用于读取格式化数据。
#include <stdio.h>
int main(void)
{
FILE *file = fopen("...", "r");
int c;
while ((c = fgetc(file)) != EOF)
{
if (c == 'A') break;
// do stuff
}
fclose(file);
}