读书人

cingt;gt;a;按上回车键给输入流缓冲区添加

发布时间: 2012-12-15 15:16:03 作者: rapoo

cin>>a;按下回车键给输入流缓冲区添加字符'\n'的疑惑
代码如下:

int a;
cin>>a;
char b;
b=cin.get();
cout<<(int)b<<endl;
当中(int)b输出的值是10,其对应字符为'\n',我想问的是:为什么不是'\b',按下回车键后该回车键'\b'会被放入输入流缓冲区吗?字符'\n'又是什么时候被载入缓冲区的呢?哪位大牛能大致讲下内部实现。
[最优解释]
Windows 敲上回车键就是输入这两个紧挨着的字符'\r' '\n'

参考我博客
Windows 上 cin>> 与 cin.getline() 混用的问题
http://blog.csdn.net/yisikaipu/article/details/8227414
[其他解释]
引用:
原来是按下回车键会输入'\r'和'\n',那请问是不是
只要按下了按键,就会有相应的字符送到输入流缓冲区,
然后会有某个函数之类的东西检查每个字符,如果
发现了'\r'字符,则会将回车键之前的字符转换成
对应的类型赋给相应的变量(对象),而'\r'字符就被弹出,
但是'\n'还留在缓冲区?顺便问一下:缓冲区的结构是栈还是队列?


大体就是这样的。缓冲区当然是队列

此例中是敲回车键后 cin>> 或者cin.get 去缓冲里读取字符

有关白空格你自己再去搜索
[其他解释]
队列吧 。
[其他解释]
引用:
代码如下:
C/C++ code??12345int a;cin>>a;char b;b=cin.get();cout<<(int)b<<endl;当中(int)b输出的值是10,其对应字符为'\n',我想问的是:为什么不是'\b',按下回车键后该回车键'\b'会被放入输入流缓冲区吗?字符'\n'又是什么时候被载入缓冲区的呢?哪位大牛能大致讲下内部实现。
……
呃,写错了,上面的'\b'应该是'\r'
[其他解释]
cin在你输入的时候,会跳过空白字符,它们会被放到缓冲区中,当你用接受空白字符的输入流时,这个时候从缓冲区中获取到它们的
[其他解释]
引用:
Windows 敲上回车键就是输入这两个紧挨着的字符'\r' '\n'

参考我博客
Windows 上 cin>> 与 cin.getline() 混用的问题
http://blog.csdn.net/yisikaipu/article/details/8227414

原来是按下回车键会输入'\r'和'\n',那请问是不是
只要按下了按键,就会有相应的字符送到输入流缓冲区,
然后会有某个函数之类的东西检查每个字符,如果
发现了'\r'字符,则会将回车键之前的字符转换成
对应的类型赋给相应的变量(对象),而'\r'字符就被弹出,
但是'\n'还留在缓冲区?顺便问一下:缓冲区的结构是栈还是队列?
[其他解释]
来位大神解释下啊~
[其他解释]
引用:
引用:Windows 敲上回车键就是输入这两个紧挨着的字符'\r' '\n'

参考我博客
Windows 上 cin>> 与 cin.getline() 混用的问题
http://blog.csdn.net/yisikaipu/article/details/8227414
原来是按下回车键会输入'\r'和'\n',那请问是……
求解释啊~

读书人网 >C++

热点推荐