2013-03-08 33 views
1

我正在製作一個c函數,並將它與mac應用程序一起用於測試和學習目的。當我嘗試打印文本使用此文件:C char沒有保存到文件,直到應用程序關閉後

FILE *f = fopen("text.txt", "w+"); 
fflush(f); 
if (f==NULL) { 
    f = fopen("text.txt", "w+"); 
    saveToFile(text); 
    printf("null\n"); 
    return 0; 
} 
else{ 
    int i = fprintf(f, "%s", text); 
    if (i>0) { 
     return 1; 
    } 
    else{ 
     return 0; 
    } 
} 
fclose(f); 

它,它打印的文件,但只有當我退出程序。任何人都知道爲什麼這可能會發生?

回答

6

無論您的程序能否達到fclose,您都需要撥打return。所以你的程序暫停寫入文件,直到它關閉(因爲緩衝)。當您終止程序時,這些文件正在爲您關閉。

+0

解決了我的問題。謝謝 – 2013-03-08 01:20:37

+1

@ChrisLoonam:您應該將其標記爲答案,以便將其從「未答覆」列表中刪除 – Dave 2013-03-08 01:21:46

相關問題