C++程序问题:用cin读取字符串的时候什么时候把空格当做结-查字典问答网
分类选择

来自郎海宁的问题

  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的内容发生了变化,感觉有点坑爹……希望高手解答一下,解答的好的话+分,

1回答
2020-02-20 18:39
我要回答
请先登录
胡叶楠

  程序是对的,把输出放在第一个输入后面,程序把第一个空格前的字母放入word中,输出的自然也是第一个字母,在循环中,是把输入放在输出前,所输出的是是无空格的那段话是因为每次输入的内容在空格出会停顿,也就是说你输入了一句话,中间有空格,整句话内容不是一次全部输入word[]中的,而是每碰到一次空格输入一次,相当于输入一个单词后回车再输入下面的单词.

2020-02-20 18:41:15

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •