[問題] 突然回來寫C的時候發現的鬼打牆問題

作者: neverchoose (不曾選擇)   2015-04-09 16:53:03
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
DEV C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
按一個數字後按ENTER 如此反覆幾次後把程式關閉
餵入的資料(Input):
預期的正確結果(Expected Output):
如按的數字依序存在TXT檔裡
錯誤結果(Wrong Output):
TXT檔裡什麼都沒有
程式碼(Code):(請善用置底文網頁, 記得排版)
int main(void)
{
FILE *inputfile;
int day;
inputfile=fopen("alin.txt","w");
while(1)
{
scanf("%d", &day);
getchar();
fprintf(inputfile,"%d\n",day);
}
fclose(inputfile);
system("pause");
return 0;
}
補充說明(Supplement):
作者: bill42362 (酒池肉林夜夜生科)   2015-04-09 17:29:00
#include <stdio.h>while 讓他正常結束就會寫入了 @@"
作者: WYchuang (愛賴床的黃金獵犬)   2015-04-09 17:34:00
你在while 迴圈裡面加入 sync()試看看吧
作者: LPH66 (-6.2598534e+18f)   2015-04-09 19:37:00
都 FILE* 了就用 fflush 吧不過還是照二樓說的比較對
作者: trylovetom (閒閒的猛男)   2015-04-10 11:25:00
While出不了Scanf放到while的判斷式裏,scanf跟getchar不要一起
作者: TobyH4cker (Toby (我要當好人))   2015-04-10 11:37:00
翻翻書很快就解決了
作者: sprian   2015-04-10 15:48:00
while沒離開的條件,永遠不會跑到fclose(),檔案當然沒東

Links booklink

Contact Us: admin [ a t ] ucptt.com