[问题] 突然回来写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