繁体   English   中英

功能中的fscanf(语言C)

[英]fscanf in a function (Language C)

我正在使用fscanf()读取char的文本文件char;

我试图将我的FILE指针传递给一个函数,继续在那里阅读,但我陷入了一个循环。

void keepReading(FILE *fp){
     char c;
     fscanf(fp, "%c", &c);
}

/* main */
fscanf(fp, "%c", &c);
while(c!='A'){
    keepReading(fp);
}

有任何想法吗?

keepReading()的变量c是该函数的本地变量。 将值返回到循环并测试它

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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM