cin.get()函数与cin.getline()函数的区别
2017-09-24 20:30
423 查看
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();等待下一个字符的输入。一旦输入了按键的字符,程序立即结束。以上是我的感想.
反观getline()函数结尾抛弃了'\0',再次输入getline()函数读取行的时候,就从下一行开始读取字符,getline()函数以回车作为换行符,但是在显示的时候,把换行符用空字符代替,Ascall码值为0的'\0'字符代替,getline抛弃换行符,所以跳到了下一个函数,继续输入一行。而get函数一行输入,把换行符留在了队列中,所以输入到最后一个字符的时候,'\n‘跳不过去所以,下一个一行输入的函数没办法开始,只有再次调用cin.get()函数不带参,读取下一个字符,也能读取换行符,所以读取了换行符,跳到了下一行.字符串自带隐式空字符'\0’,其值为ASCALL码为0,0字节。因此C++程序没办法暂停的时候,输入完毕的时候,你可以输入cin.get();等待下一个字符的输入。一旦输入了按键的字符,程序立即结束。以上是我的感想.
相关文章推荐
- C++ 输入函数 cin>>、cin.getline()和cin.get()区别
- C++ 输入函数getline(cin,str) 与cin.getline(str,int)区别
- C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar()))
- 字符串输入函数cin.getline()、与cin.get()的区别
- C++ 输入函数 cin>>、cin.getline()和cin.get()区别
- C++ 输入函数getline(cin,str) 与cin.getline(str,int)区别
- C++ 输入函数getline(cin,str) 与cin.getline(str,int)区别
- C++ 输入函数 cin>>、cin.getline()和cin.get()区别
- C++ 输入函数 cin>>、cin.getline()和cin.get()区别
- cin cin.get() cin.getline() string类成员函数getline(cin,str)使用方法区别与联系
- 【转】cin、cin.get、cin.getline之间的区别
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- getline和cin.getline的区别!
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法 ...
- 字符串输入函数scanf,cin,cin.getline,gets,getline
- cin、cin.get()、cin.getline()、getline()、gets()函数的用法
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法