我有一个文本文件"hello.txt",我需要读取该文件并将其写入stdout 10次,如何做到这一点?
我现时所做的工作如下:
#include<stdio.h>
main(){
int c,i;
FILE *fp;
for(i=0;i<10;++i) {
fp = fopen("hello.txt","r");
for(;c!=EOF;c= getc(fp),putchar(c));
fclose(fp);
}
return 0;
}此代码只打印内容1次,但不打印10次。
发布于 2014-02-16 06:22:03
#include<stdio.h>
main(){
int c,i;
FILE *fp;
for(i=0;i<10;++i) {
fp = fopen("hello.txt","r");
while ((c = getc(fp)) != EOF) {
putchar(c);
}
fclose(fp);
}
return 0;
}在您的代码中,当c变成EOF时,循环将永远被忽略!
发布于 2014-02-16 06:25:12
在再次读取文件之前,必须初始化c。在您的代码中,一旦c是EOF,它就会永远保留它,并且不会进入for循环。
c = 0;
for(;c!=EOF;c= getc(fp),putchar(c));https://stackoverflow.com/questions/21807998
复制相似问题