如何从文本文件中扫描和打印int值?

时间:2017-11-29 07:00:52

标签: c

FILE *fre;
int re_rng;

fre = fopen(file_name, "a");
while (!feof)
{
    fscanf(fre,"%d", &re_rng);

    if (fre==NULL){
        printf("Error");
    }
    printf("%d", re_rng);
}

文本文件如下(垂直列表)

12
2
7
5
4
10
15
4
18

1 个答案:

答案 0 :(得分:0)

有很多方法可以解决这个问题。如果您的文件中只包含数字,并且您没有使用scanf进行任何其他混合输入,则可以使用它来读取文件中的每个整数值,直到遇到EOF。没什么特别的。

以下代码从作为第一个参数提供的文件名中读取(如果没有提供参数,则默认来自stdin

#include <stdio.h>

int main (int argc, char **argv) {

    int i;  /* read from 1st arg (or stdin by default) */
    FILE *fp = argc > 1 ? fopen (argv[1], "r") : stdin;

    if (!fp) {  /* validate file open for reading */
        fprintf (stderr, "error: file open failed '%s'.\n", argv[1]);
        return 1;
    }
    while (fscanf (fp, "%d", &i) == 1)  /* validate 1 conversion */
        printf (" %2d", i);         /* output your integer */
    putchar ('\n');                 /* tidy up with newline */

    if (fp != stdin) fclose (fp);   /* close file if not stdin */

    return 0;
}

示例输入文件

$cat dat/verticallist.txt
12
2
7
5
4
10
15
4
18

示例使用/输出

$ ./bin/rdintsfromfile <dat/verticallist.txt
 12  2  7  5  4 10 15  4 18

仔细看看,如果您有任何其他问题,请告诉我。