对读入多行含有空格的字符串的纪念~~

真是破大防了家人们
首先明确的是,要读入一整行包含空格的字符串,需要用getline(cin,s)【假设字符串是s】
但是读入多行包含空格的字符串,尤其前面先输入行数n的时候就很坑!!这个时候其实是需要用getchar(),来处理掉你读入n之后输入的回车’\n’的,但是还是很
下面先放一张图
这是原输入:
对读入多行含有空格的字符串的纪念~~_第1张图片

3
Zebras are my favorite animal!
The zombie zookeeper is surprisingly good with the zebras.
Fuzzy wuzzy was a bear.

对读入多行含有空格的字符串的纪念~~_第2张图片
上图看输出的对的,交上去却是
在这里插入图片描述
还有这种坑:
对读入多行含有空格的字符串的纪念~~_第3张图片
可以看到粘贴到记事本里面第一行的3后面不仅有换行,还有空格!!!所以一个getchar()自然会出错,当去掉第一行多余的空格后,上述代码输出是对的,但提交依旧WA
为了杜绝第一行所有的干扰字符,我们用一个while循环来解决
对读入多行含有空格的字符串的纪念~~_第4张图片
最后祝大家愚人节快乐~~~

你可能感兴趣的:(C/C++,算法)