簡體   English   中英

為什么這個 while 循環沒有像我使用 for 循環那樣運行兩次?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM