从用空格分隔的文件中读取整数

时间:2014-04-10 10:48:28

标签: c arrays file-io

我有一个文件,它持有这样的整数:

11_12_34_1987_111_       

其中_表示空格,我想将它们存储在最大大小为100的整数数组中。我试过这个

    i=0;
    while((c=fgetc(f))!=EOF)
    {

        fscanf( f, "%d", &array[i] );
        i++;
    }

但打印此数组会在屏幕上显示无限值。

1 个答案:

答案 0 :(得分:2)

fgetc从流f中读取下一个字符,并将其作为unsigned char广告投放回int。因此,您要存储从流中读取的字符的(ascii)代码。

您应该使用fscanffgetssscanf的组合将其作为整数读取,以从流中读取整数。您可以检查fscanf的{​​{1}}的返回值,并继续阅读该文件。这就是我的建议。

1