C/C++中读取输入数据时的'\n'问题
在C中,使用scanf输入的数据实际是先将数据加载到stdin中,然后从stdin中将数据取出到scanf的地址中,但是实际的输入最后会有一个'\n',从stdin中取出数据时这个字符将会留在stdin中,如果此时我们继续使用scanf不会出现什么问题,但是使用支持空格的gets(),将会从stdin中取出最后一个'\n',gets()可能读取不到数据。
在C中有一个stdin stdout刷新的函数,貌似fflush()。使用这一函数清空stdin中的数据就可以了。
在C++中getline()相当于上文的gets(),它将从标准输入中取出字符,其中的'\n'也会替代你所需要的字符,可以在此函数之前加入cin.get()清除标准输入之中的数据。