![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 14:26 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 问个菜问题,但不一定就好解决哦 |
| 可打印版本 989 / 6 |
| 第1楼 mrdeadman | 发表于 2004-09-08 00:00 |
| 中级用户 发帖 49 积分 258 | |
|
问个菜问题,但不一定就好解决哦 #include <stdio.h>
main() { int i=0;char wb,s,c; for(i=0;i<1000;i++) {wb=getchar(); if(wb==EOF) break;} scanf("%s",s);getch(); } 我的问题是,为什么循环里边碰到eof以后,后边的scanf就跳过了呢?如何让他执行呢? |
|
| 第2楼 Wengier | 发表于 2004-09-08 00:00 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
因為break跳出了整個循環嘛。。
|
|
| 第3楼 mrdeadman | 发表于 2004-09-08 00:00 |
| 中级用户 发帖 49 积分 258 | |
|
可是scanf("%s",s);在循环外呢,老兄你没看清吧
|
|
| 第4楼 bush | 发表于 2004-09-13 00:00 |
| 银牌会员 发帖 730 积分 2,165 | |
|
不是這樣的!你應該用:getche()或getch()
#include <stdio.h> main() { int j=0;char wb,s,c; for(j=0;j<100;j++) { wb=getche(); if(wb==EOF) break; } scanf("%s",s); getch(); } |
|
| 第5楼 mrdeadman | 发表于 2004-09-13 00:00 |
| 中级用户 发帖 49 积分 258 | |
|
楼上的,这么搞不行,用getche时,连回车符都忽略了,我的目的是,先要读入一大段文本,并且让它显示(所以getch也不行),完成这个工作后还要能执行scanf读入文件名,以便保存.
|
|
| 第6楼 cdl | 发表于 2004-09-20 00:00 |
| 中级用户 发帖 107 积分 340 | |
|
在输入完文本之后,在文件名输入之前需要清一下键盘缓冲区。
|
|
| 第7楼 xiexiaohu | 发表于 2004-10-17 00:00 |
| 中级用户 发帖 95 积分 365 | |
|
楼上的,键盘只能缓冲20个字符,清空缓冲有什么用?
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |