cin.get()函数与cin.getline()函数的区别

cin.get函数等待下一个字符串的输入,实际上输入一个字符后面加上了空字符'\0'Ascall码为0的字符,cin对象把'\0'留在缓冲数据队列中,因此下一次读取的时候,把空字符'\0'输入到了下一个队列中,因此读取下一个队列的时候加一个cin.get()函数读取'\0'等待下一个字符的输入。
反观getline()函数结尾抛弃了'\0',再次输入getline()函数读取行的时候,就从下一行开始读取字符,getline()函数以回车作为换行符,但是在显示的时候,把换行符用空字符代替,Ascall码值为0的'\0'字符代替,getline抛弃换行符,所以跳到了下一个函数,继续输入一行。而get函数一行输入,把换行符留在了队列中,所以输入到最后一个字符的时候,'\n‘跳不过去所以,下一个一行输入的函数没办法开始,只有再次调用cin.get()函数不带参,读取下一个字符,也能读取换行符,所以读取了换行符,跳到了下一行.字符串自带隐式空字符'\0’,其值为ASCALL码为0,0字节。因此C++程序没办法暂停的时候,输入完毕的时候,你可以输入cin.get();等待下一个字符的输入。一旦输入了按键的字符,程序立即结束。以上是我的感想.

猜你喜欢

转载自blog.csdn.net/qq_32952043/article/details/78079369