初始代码请教,这个cin.ignore()如何起的作用呢?
以下几行代码,我想实现在键盘上敲什么字符,就在屏幕上显示什么字符,但是如果加上cin.ignore()后,结果就是不对的,总是显示我键入的第二个字符。我非常不解,1.为什么屏幕输出的总是第二个字符呢?第一个字符被cin.ignore()吃了不成。我用cin.ignore()的作用是清空键盘缓冲区呀,应该没有影响呀,我的思路是先清空缓冲区,再提取键盘录入的字符,这种思路有问题吗?
2.以下代码,我的理解是键入一个字符,则屏幕上会马上显示出来,但是好象不会,只有键入“回车”后,屏幕才会输出。
getchar()应该可以录入任何字符呀,所以回车符与其他可见的字符应该同等对待呀?难道我的理解还是错误的吗?请达人指教。
#include <iostream>
#include <stdlib.h>
using namespace std;
#include <conio.h>
int main()
{
cin.ignore();
cout << getchar();
cout << endl; system("pause");
return 0;
}
以下几行代码,我想实现在键盘上敲什么字符,就在屏幕上显示什么字符,但是如果加上cin.ignore()后,结果就是不对的,总是显示我键入的第二个字符。我非常不解,1.为什么屏幕输出的总是第二个字符呢?第一个字符被cin.ignore()吃了不成。我用cin.ignore()的作用是清空键盘缓冲区呀,应该没有影响呀,我的思路是先清空缓冲区,再提取键盘录入的字符,这种思路有问题吗?
2.以下代码,我的理解是键入一个字符,则屏幕上会马上显示出来,但是好象不会,只有键入“回车”后,屏幕才会输出。
getchar()应该可以录入任何字符呀,所以回车符与其他可见的字符应该同等对待呀?难道我的理解还是错误的吗?请达人指教。
#include <iostream>
#include <stdlib.h>
using namespace std;
#include <conio.h>
int main()
{
cin.ignore();
cout << getchar();
cout << endl; system("pause");
return 0;
}
解决方案 »
- 怎么登录服务器的数据库?
- autoCAD2009是用什么开发语言开发的?CAD2009界面风格很另类。如果要开发类似界面风格的软件,该选用什么开发工具??
- 新手问题:在工程里增加一个类
- 我理解的句柄.
- CAsyncSocket得基础问题
- 请问在VB里能不能直接 new 接口?
- 请教我想做个DLL文件在VB中调用,我希望对DLL进行加密,怎么做DLL?怎么调用?怎么加密?
- sqldmo 如何还原差异数据库备份呀,以下代码可以还原整个数据库
- 请问我在CWinApp:: InitInstance() 中看到的 m_pMainFrame 就是指向在 pDocTemplate = new CSingleDocTemplate(...)中的CMainFrame 的指针??
- script encode在哪儿可以找到呀
- 关于DOMWriter
- vc如何将选中的多个文件复制到指定的地方
cin.ignore()清空的缓冲区内容包括了你刚输入的数据