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
答案 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
仔细看看,如果您有任何其他问题,请告诉我。