(C++)char数组和string读取含空格的字符串

1. char数组:

  使用scanf("%[^c]",s)可以以c字符为间隔读取字符串。

  所以scanf("%[^ ]",s)可以以读取以换行符为间隔读取字符串。

  但是它不会吃掉换行符,所以scanf连着用时要用getchar()把中间的换行符吃掉才行。


2. string

  使用getline(cin,s)可以以换行符为间隔读取字符串。

  它会吃掉换行符,所以getline连着用不需要用getchar()吃掉换行符。

  如果前面用cin读了东西,后面要用getline,需要在cin之后用cin.get()吃掉换行符。

原文地址:https://www.cnblogs.com/FrankChen831X/p/12491304.html