- UID
- 939
- 精华
- 积分
- 22
- 威望
- 点
- 宅币
- 个
- 贡献
- 次
- 宅之契约
- 份
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
发表于 2015-7-4 23:50:52
|
显示全部楼层
本帖最后由 hapro 于 2015-7-4 23:56 编辑
EOF是文件结束符,键盘应该输入不了EOF字符的。getchar、fgets、fread这些都是缓冲输入函数,敲了enter才会接受并处理输入的数据。想退出这个循环,有两个简单的办法:
1、通过fgets(buf, sizeof(buf), stdin)或fread(buf, 1, sizeof(buf), stdin)读入一行输入,判断输入的内容是不是单词,例如quit,exit之类,如果是,就break出循环;
2、通过<stdlib.h>中的无缓冲输入函数getch//有回显 或getche//无回显 来接受输入的任意字符,然后判断是否是特殊字符来决定是否退出,例如ESC,具体数值(好像是0x09)不太确定,你可以打印出来试试。
至于main退出前等待,如前贴所说用system("pause")来运行命令行的pause命令可以,也可以直接使用getch或getche函数来等待用户敲入任意字符,或者直接放一个fgets(buf,sizeof(buf),stdin)来接收个enter就行。 |
|