[英]why this while loop not running twice as i have used for loop?
samplefile1.txt 包含我想在新文件中寫入兩次的相同名稱。 samplefile1.txt - John output 我想要的如下 samplefile2.txt - JohnJohn
#include <stdio.h>
int main()
{
FILE *ptr1;
FILE *ptr2;
ptr1=fopen("samplefile1","r");
ptr2=fopen("samplefile2.txt","w");
char a;
for(int i=0;i<2;i++){
a=fgetc(ptr1);
while(a!=EOF){
fprintf(ptr2,"%c",a);
printf("%c",a);
a=fgetc(ptr1);
}
}
fclose(ptr1);
fclose(ptr2);
return 0;
}
第二次運行循環時,您已經在文件末尾,因此它永遠不會進入while
循環體,因為比較失敗。
在第一個循環中,它讀取整個文件。 所以它根本不會進入你的第二個循環。
while(a!=EOF){
fprintf(ptr2,"%c",a);
printf("%c",a);
a=fgetc(ptr1);
}
您可以使用 rewind function 將文件 position 設置為文件的開頭,例如rewind(ptr1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.