我正在使用 fscanf() 逐字符读取文本文件;
我试图将我的 FILE 指针传递给一个函数,以便继续阅读,但我陷入了一个循环。
void keepReading(FILE *fp){
char c;
fscanf(fp, "%c", &c);
}
/* main */
fscanf(fp, "%c", &c);
while(c!='A'){
keepReading(fp);
}
有任何想法吗?
变量c
inkeepReading()
是该函数的局部变量。将值返回到您的循环并进行测试
char keepReading(FILE *fp){
char c;
fscanf(fp, "%c", &c);
return c;
}
/* main */
fscanf(fp, "%c", &c);
while(c!='A'){
c = keepReading(fp);
}
不要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);
}