while(cin>>word) cout<<word<<endl;的相关问题

如果输入123123为什么输出的是123再另起一行123... 如果输入123 123为什么输出的是123再另起一行123 展开
 我来答
忘情殇
2020-04-24
知道答主
回答量:3
采纳率:0%
帮助的人:1795
展开全部
括号前面的意思是反复读取,直至文件末尾。括号后面的意思是逐个输出单词,每个单词后面紧跟着一个换行符。题中输入123 123算是两个单词,所以输出是123,换行,123
terranlong
推荐于2016-08-13 · TA获得超过7294个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:3985万
展开全部
首先要知道while(cin>>word)是怎么工作的
while(cin>>word)就是,从输入流中,以空格为分隔保存到word里面。输入123 321,其实是循环了两次,因此执行了两次cout,第一个输出的是123,换行,第二个输出的是321,换行
追问
但我有疑问就是循环的话那么是判断一次循环条件再执行一次循环体呀,既然word是string,为什么不能说123   123就是一个字符串
追答
123   123可以是一个字符串,但cin的规则就是,将输入流里面,空格以前的赋值给word,如:
#include
#include
using namespace std;
void main()
{
string s;
cin >> s;
cout << s << endl;
}

你输入:324324 12344
输出的是:324324
而如果你设定s = "sdfdsf sdfasdf";
输出的就是:sdfdsf sdfasdf
问题不出现在字符串那里,而是在cin那里,它读到空格就不再读下去了,while的下一次使它读空格以后的东西
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
望侯G
2011-09-20 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:78
采纳率:0%
帮助的人:78.6万
展开全部
从输入流中,以空格为分隔保存到word里面,以回车为结束。输入123 321,不是一个字符串,而是两个了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式