C语言中关于ctrl+Z的问题
#include<stdio.h>#include<stdlib.h>main(){FILE*f1;charc;if((f1=fopen("Robin.txt","w")...
#include<stdio.h>
#include<stdlib.h>
main()
{ FILE *f1;
char c;
if((f1=fopen("Robin.txt","w"))==0)
{ printf("Wrong!\n");
exit(0);
}
c=getchar();
while(c!=EOF)
{ fputc(c,f1);
c=getchar();
}
fclose(f1);
}
第一次输入aaa ctrl-z bbb ctrl-z回车
再次输入ccc ctrl-z回车
最后输入ctrl-z回车
发现只有单独输入ctrl-z的时候他才被getchar()读入了,而前面的ctrl-z只是使其后面的输入不被读入,这是为什么?请高手帮帮忙
WINDOWS VC6.0 展开
#include<stdlib.h>
main()
{ FILE *f1;
char c;
if((f1=fopen("Robin.txt","w"))==0)
{ printf("Wrong!\n");
exit(0);
}
c=getchar();
while(c!=EOF)
{ fputc(c,f1);
c=getchar();
}
fclose(f1);
}
第一次输入aaa ctrl-z bbb ctrl-z回车
再次输入ccc ctrl-z回车
最后输入ctrl-z回车
发现只有单独输入ctrl-z的时候他才被getchar()读入了,而前面的ctrl-z只是使其后面的输入不被读入,这是为什么?请高手帮帮忙
WINDOWS VC6.0 展开
1个回答
推荐于2016-11-25
展开全部
不存在你描述的现象,第一个CTRL+Z就可以结束while循环。
大哥,我看到这个问题后,不敢相信自己的耳朵和眼睛,所以分别在WINDOWS SERVER + CGB /UBUNTU 9.10+ GCC中分别做了测试,才让我放心,请问你的测试环境是什么?你的测试过程又是怎样的?
****************************************************
原来是VC++6.0他老人家呀,由于它的许多地方不符合标准,我都快要忘记它了!如果是VC++,那么就要求^z之前只能有一个回车符(也就是说必须出现在当前行的第一个位置),否则会按一般字符读取。
大哥,我看到这个问题后,不敢相信自己的耳朵和眼睛,所以分别在WINDOWS SERVER + CGB /UBUNTU 9.10+ GCC中分别做了测试,才让我放心,请问你的测试环境是什么?你的测试过程又是怎样的?
****************************************************
原来是VC++6.0他老人家呀,由于它的许多地方不符合标准,我都快要忘记它了!如果是VC++,那么就要求^z之前只能有一个回车符(也就是说必须出现在当前行的第一个位置),否则会按一般字符读取。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询