繁体   English   中英

从C中的文本文件读取整数

[英]Reading intergers from a text file in c

我想将文件中的输入输入到我的C程序中。 输入应包含数字和字符,此后我要区分它们。 由于fscanf在遇到非整数时返回0,因此不值得在这里使用,该怎么办?

#include <stdio.h>
#include <ctype.h>

int main(){
    int num, status;
    FILE *fp = fopen("data.txt", "r");
    while(EOF!=(status = fscanf(fp, "%d", &num))){
        if(status == 1){
            printf("%d\n", num);
        } else { //if(status == 0){
            (void)fgetc(fp);//replace by @chux's suggestion

诠释 while(EOF!=(ch = fgetc(fp))&& ch!='-'&&!isdigit(ch)); if(ch =='-'){int pch = fgetc(fp); if(isdigit(pch)){ungetc(pch,fp); ungetc(ch,fp); }}其他{ungetc(ch,fp); }

        }
    }
    fclose(fp);
    return 0;
}

只需一次读取一个文件一个字符并检查值的范围,因为我们知道'0'到'9'的整数值是48到57,只需检查并使用即可。 希望对您有帮助。

暂无
暂无

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

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