C++程序问题:用cin读取字符串的时候什么时候把空格当做结束标记,什么时候跳过空格继续读?C++PrimerPlus第五章中有一道练习题,题目要求输入一段英文(单词+空格组成),用"done"表示输入结
C++程序问题:用cin读取字符串的时候什么时候把空格当做结束标记,什么时候跳过空格继续读?
C++PrimerPlus第五章中有一道练习题,题目要求输入一段英文(单词+空格组成),用"done"表示输入结束,然后程序输出这段话有多少个词(不算done).示例:
Hellowordthisisaprogramdonenomorewordsbehinddone
返回:Youentered6words.(done后面的词不要了)
我的程序如下:
#include
#include
intmain()
{
usingnamespacestd;
charword[20];
cout>word;
intsum=0;
while(strcmp(word,"done")=0)
{
sum++;
cin>>word;
}
coutword之前加入了cout>word读取了那段话的第一个词,赋给了word,但是到了循环里面,word就突然变成了把空格全部删去后的一段话.
无缘无故word的内容发生了变化,感觉有点坑爹……希望高手解答一下,解答的好的话+分,