c语言循环输入字符 输入指定字符结束循环,为什么要输入两次

C语言 如果得到任意一个字符输入,就停止循环体 怎么做?_百度知道
C语言 如果得到任意一个字符输入,就停止循环体 怎么做?
我有更好的答案
char ch=0;{……if(ch=getchar()!=0)}
我的意思是说 在执行循环体是不输入任何字符 当想结束循环时,输入一个字符 使之结束循环!怎么做?
把悬赏加到100,会有人帮你解决的
为您推荐:
其他类似问题
循环体的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 2511 人关注过本帖
标题:关于 scanf 读入数量不定的字符串,为什么要输入两次文件结束符才能结束输入 ...
等 级:新手上路
&&问题点数:0&&回复次数:4&&&
关于 scanf 读入数量不定的字符串,为什么要输入两次文件结束符才能结束输入
#include&stdio.h&
#include&string.h&
int main()
char zf[1024];
while(scanf(&%s&,zf)!=EOF)
printf(&%s\n&,zf);
puts(zf\n);
如果代码写成这样的话,如果要结束必须用键盘输入两次文件结束符
即使在while循环的开始加入getchar(),也是如此
而使用while(gets(zf)!=NULL)作为循环条件则不需要如此
为什么,如果是换行符的问题,为什么用getchar无法解决
搜索更多相关主题的帖子:
&&&&&&&&&&
等 级:贵宾
威 望:12
帖 子:337
专家分:1181
你自己编译过了吗?
你知道scanf语句执行后会返回什么吗?
你知道EOF什么意思吗?
代码测试环境:&&WinXP+C-Free5.0.
等 级:蜘蛛侠
帖 子:331
专家分:1433
简单说说:
while(scanf(&%s&,zf)!=EOF)&&确实需要输入两次 终止符
因为scanf是取流处理,第一次遇到EOF 只是说明前面的输入流有效,然后自己刷新一次缓冲。再一次遇到EOF 那么就OVER了
等 级:蝙蝠侠
帖 子:256
专家分:831
回复 3 楼 erty1001
长知识了。。。感谢。。。
等 级:论坛游侠
帖 子:82
专家分:123
版权所有,并保留所有权利。
Powered by , Processed in 0.106091 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 1777 人关注过本帖
标题:怎样在运行中输入字符结束循环
等 级:论坛游民
帖 子:102
专家分:96
结帖率:85.71%
&&已结贴√
&&问题点数:20&&回复次数:5&&&
怎样在运行中输入字符结束循环
程序代码:#include&stdio.h&
#include &stdlib.h&
int hour,minute,
void update()&&&//刷新时间
&&& second++;
&&& if(second == <font color=#)
&&&&&&&&second = <font color=#;
&&&&&&&&minute++;
&&& if(minute == <font color=#)
&&&&&&&&minute = <font color=#;
&&&&&&&&hour++;
&&& if(hour == <font color=#)
&&&&&&&&hour = <font color=#;
void display()&&&//输出时间
&&& printf(&%d:%d:%d\n&,hour,minute,second);
void delay()&&&//延时
&&& int t,s;
&&& for(t = <font color=#;t&<font color=#0;t++)
&&&&&&&&for(s = <font color=#;s&<font color=#000;s++);
int main()
&&& int system(const char *string);&&//清屏
&&& for(i = <font color=#;i&<font color=#0000000;i++)
&&&&&&&&update();
&&&&&&&&display();
&&&&&&&&delay();
&&&&&&&&system(&cls&);
&&& return <font color=#;
我想在程序运行的时候随便输入一个字符结束运行,得到开始运行到结束运行之间的时间。求大神指教......
搜索更多相关主题的帖子:
等 级:论坛游民
帖 子:102
专家分:96
额int system(const char *string);&&//清屏
这句忘记删掉了.....
任重而道远
等 级:论坛游民
专家分:14
&&得分:14&
一边运行一边等待输入
等 级:论坛游民
帖 子:102
专家分:96
回复 3楼 凝思
具体怎样操作呢
任重而道远
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:733
专家分:1546
首先我不知道你这个程序是想用来干嘛,如果是为了实现功能,请想个更合适的办法;如果是为了练手,倒也无妨。
这里先单就这个代码来讲:
你要的效果是“结束运行”,而非结束计时,可以这样:
#include&stdio.h&
#include &stdlib.h&
#include &conio.h&
int hour,minute,
void update()&&&//刷新时间
&&& second++;
&&& if(second==60)
&&&&&&&&second=0;
&&&&&&&&minute++;
&&& if(minute==60)
&&&&&&&&minute=0;
&&&&&&&&hour++;
&&& if(hour==24)
&&&&&&&&hour=0;
void display()&&&//输出时间
&&& printf(&%d:%d:%d\n&,hour,minute,second);
void delay()&&&//延时
&&& int t,s;
&&& for(t=0;t&1000;t++)
&&&&&&&&for(s=0;s&200000;s++)
&&&&&&&&&&&&;
&&& }&&&&&&&&& //------&这里不用写个分号,当然加个空语句倒也无大妨。
int main()
&&& int system(const char *string);&&//清屏
&&& for(i=0;i&;i++)
&&&&&&&&fflush(stdin);
&&&&&&&&if(_kbhit())
&&&&&&&&&&&&
&&&&&&&&update();
&&&&&&&&display();
&&&&&&&&delay();
&&&&&&&&system(&cls&);
&&& return 0;
PS:个人感觉如果按个字符就暂停计时神马的会更好玩一点~
参考:http://zhidao.baidu.com/link?url=9z19Cg7RCxMujWgSH_6I9fOokKhQCAx0T-jr77Nys1LSLEE42WHnN9YvLi8nvojmcUCKc1wcyVYuor46fUul8a
多说一句:有事多问度娘,多问谷歌!虾米都是可以自己解决的~
学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Black Cat&&&&&&Hello Tomorrow~
等 级:论坛游民
帖 子:49
专家分:20
delay() 加与不加也看不出延迟来呢?
版权所有,并保留所有权利。
Powered by , Processed in 0.089828 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved53被浏览8,890分享邀请回答printf("Please enter a character:\n");
scanf("%c\n",&ch);
这样可以把换行字符从缓冲区清除掉。53 条评论分享收藏感谢收起

我要回帖

更多关于 c语言删除指定字符 的文章

 

随机推荐