社区
C语言
帖子详情
请问: while(cin>>str)这个循环!
iverson7909
2003-04-09 02:45:03
请问:
string str;
while( cin >> str )
{cout << str;}
这个循环出不去!
为什么?
谢了!
...全文
400
18
打赏
收藏
请问: while(cin>>str)这个循环!
请问: string str; while( cin >> str ) {cout << str;} 这个循环出不去! 为什么? 谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LoveCreatesBeauty
2003-05-30
打赏
举报
回复
while(cin>>str)
c++是强类型检查的,
以前有位朋友问过为何可以这样用,
这是因为cin的一个函数会进行转换得到bool类型值.
ChinaKevin
2003-04-10
打赏
举报
回复
这个问题在C++ primer 撒谎能够有的,而且到处是,我不知道stan 是怎么跳出循环的!
有兴趣的可以把他的书找来看一看的~!
iverson7909
2003-04-09
打赏
举报
回复
谢谢大家的倾囊相告!小弟已经略直一二了!有不懂我会在问的!在次谢过!
wyqiang
2003-04-09
打赏
举报
回复
大师们教导
猫猫真有人缘
liem
2003-04-09
打赏
举报
回复
你为什么要用这样的循环呢?
目的?
完成什么功能?
想想能否用其它方法完成同样的功能。
langzi8818
2003-04-09
打赏
举报
回复
:)没的说了
LoveCreatesBeauty
2003-04-09
打赏
举报
回复
Windows下用ctrl+Z可以产生EOF,
Unix下用ctrl+D可以产生EOF
LoveCreatesBeauty
2003-04-09
打赏
举报
回复
需要enter是因为cin输入是采取了缓冲。在读取到EOF或者输入类型不匹配时都会终止输入,后者会在返回的basic_istream对象设置一个错误标志。“>>”会返回这个对象(引用),这也是 cin >> iX >> iY >> iZ; 这种连写可以的原因:
basic_istream& operator>>(basic_istream& (*pf)(basic_istream&));
basic_istream& operator>>(basic_ios<E, T>& (*pf)(basic_ios<E, T>&));
basic_istream& operator>>(ios_base<E, T>& (*pf)(ios_base<E, T>&));
basic_istream& operator>>(basic_streambuf<E, T> *sb);
basic_istream& operator>>(bool& n);
basic_istream& operator>>(short& n);
basic_istream& operator>>(unsigned short& n);
basic_istream& operator>>(int& n);
basic_istream& operator>>(unsigned int& n);
basic_istream& operator>>(long& n);
basic_istream& operator>>(unsigned long& n);
basic_istream& operator>>(void *& n);
basic_istream& operator>>(float& n);
basic_istream& operator>>(double& n);
basic_istream& operator>>(long double& n);
shornmao
2003-04-09
打赏
举报
回复
http://www.cpphelp.net/faq.html
fangrk
2003-04-09
打赏
举报
回复
我讲得也不是很清楚,你可以去看看《C++标准程序库》P600
你程序可以这样写:
string str;
while( cin >> str )
{if(str[0]=='*') break;
cout << str;
}
EthanJiang0827
2003-04-09
打赏
举报
回复
你那个while只有在输入出错或输入流结束(有结束标志)的时候才退出啊!回车不是结束标志。
fangrk
2003-04-09
打赏
举报
回复
string str;
while( cin >> str )
{cout << str;}
cin>>str返回cin,在条件判断中间将会调用operator void*来判断cin是否有错误。
当遇到输入错误(比如输入整数却输入了字符)或者流结束(比如读文件到了文件末尾)或者其他原因(比如定位于一个文件的开头之前)就会中断循环。
在你的例子中间,只能使用ctrl+d或者ctrl+z来终止程序
woxihuanbohe
2003-04-09
打赏
举报
回复
在循环体内判断一下 然后break!
TopCat
2003-04-09
打赏
举报
回复
如果你要输入一行文字,用if(getline(cin, str))...
TopCat
2003-04-09
打赏
举报
回复
怎么不是这个意思?
这个循环只有在 cin 的状态为 !good 的时候才结束,而要达到这个效果,只有两条途径:输入出错(不太可能),或者输入流结束。输入流结束标志就是ctrl + z。
iverson7909
2003-04-09
打赏
举报
回复
我说的不是这个意思!
string str;
while( cin >> str )
{cout << str;}
...
按道理,应该输入完以后,按回车,输出str的内容,然后程序往下进行,但是,输出完以后
还让我输入?无法进行下面的程序?
cin>> str 的返回值是 true or false 吗?
pengzhenwanli
2003-04-09
打赏
举报
回复
Ctrl + Z
小笨和漂向北方
2003-04-09
打赏
举报
回复
ctrl+Z
do while
循环
和while
循环
的区别
本文详细比较了C语言中的while和do-while
循环
,强调它们在判断条件时机上的不同。通过示例代码展示,解释了当输入为0时,两种
循环
可能产生的不同结果,并提供了解决方案。同时,总结了while和do-while
循环
的基本概念和使用场景。
sql while
循环
_SQL WHILE
循环
的简单示例
本文深入探讨了SQL中的WHILE
循环
,通过简单示例解释了其基本结构和语法,包括无限
循环
、BREAK和CONTINUE语句的使用,以及如何通过WHILE
循环
读取表记录。同时,通过流程图直观地展示了各种概念。
while(
cin
>>
str
)如何结束
循环
本文介绍在使用while(
cin
>>temp)
循环
接收输入时,如何避免
循环
无法跳出的问题。解决办法是在输入完成后按下回车,然后使用ctrl+z再回车。此操作原理与操作系统及输入流有关。
do-while
循环
的与for
循环
,while
循环
的区别
本文详细比较了do-while、for及while三种
循环
结构的特点。包括它们的表达式形式、执行时的判断方式、执行次数以及末尾
循环
体的执行顺序等方面。
while
循环
、do-while
循环
与for
循环
本文详细介绍了Java中while、do-while和for三种
循环
结构的语法、执行步骤及应用场景,并通过案例分析了它们之间的区别。while
循环
先判断条件再执行,do-while
循环
至少执行一次,for
循环
适用于已知
循环
次数的情况。
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章