社区
C语言
帖子详情
请问: while(cin>>str)这个循环!
iverson7909
2003-04-09 02:45:03
请问:
string str;
while( cin >> str )
{cout << str;}
这个循环出不去!
为什么?
谢了!
...全文
344
18
打赏
收藏
请问: while(cin>>str)这个循环!
请问: string str; while( cin >> str ) {cout << str;} 这个循环出不去! 为什么? 谢了!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
while(
cin
>>
str
)如何结束
循环
问题描述:在使用while(
cin
>>temp)进行
循环
接收输入时,会遇到while
循环
跳不出来 解决方法:输入完数据后->回车->ctrl+z->回车 至于为什么https://blog.csdn.net/misayaaaaa/article/details/53332219这里讲的比较详细,但是他只要说了ctrl+z...
while(
cin
>>
str
)的
循环
结束问题
这个问题源于《c++Primer第五版》p15的一个程序,我写了一个简化代码,如下 输入类型为整形或者浮点型 int val; while (
cin
>> val) { cout << "1" << endl; } cout << "over" << endl; 如果重复输入int类型的值的话,即使按了enter也会重复
循环
,只有在输入非int的值的时候,这个
循环
才会跳出输出over,或者按ctl+z,然后按enter。 输入类型为字
【operator bool】while(
cin
>>
str
)是什么意思?
operator bool,一种特殊的运算符重载,可以实现本类型到bool类型的隐式类型转换
while(
cin
>>
str
)如何结束
循环
转载地址:https://blog.csdn.net/weixin_42731241/article/details/83216661 问题描述:在使用while(
cin
>>temp)进行
循环
接收输入时,会遇到while
循环
跳不出来 解决方法:输入完数据后->回车->ctrl+z->回车 至于为什么https://blog.csdn.net/misayaaaaa/article/details/53332219这里讲的比较详细,但是他只要说了ctrl+z ———————————
C++如何退出while(
cin
>>
str
)
循环
方法:回车后,在新行Ctrl+z并回车。若输入数据后Ctrl+z再回车无效。原因: 输入缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。每当按下回车键后,
cin
.get() 就会检测输入缓冲区中是否有了可读的数据。
cin
.get() 还会对键盘上是否有作为流结束标志的 Ctrl+Z 或者 Ctrl+D 键按下作出检查,其检...
C语言
70,020
社区成员
243,264
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章