while(cin>>word) cout<<word<<endl;的相关问题
3个回答
展开全部
首先要知道while(cin>>word)是怎么工作的
while(cin>>word)就是,从输入流中,以空格为分隔保存到word里面。输入123 321,其实是循环了两次,因此执行了两次cout,第一个输出的是123,换行,第二个输出的是321,换行
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的下一次使它读空格以后的东西
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从输入流中,以空格为分隔保存到word里面,以回车为结束。输入123 321,不是一个字符串,而是两个了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询