C++ 实现按任意键继续~~~
2010-09-20 21:10
204 查看
最近让学生写程序交作业的时候要求他们只给我交个cpp文件和一个exe文件,这样交上来的东西不至于太多,不占我的地方,但是有一个问题是exe它总是运行完后就直接关闭界面了,看不到运行结果的界面。
然后我就教他们说,用一个cin语句,让界面停留一下等待用户输入,这样我们就可以看得到界面了。(我觉得目前为止,它们也还只能接受这种方式吧?)
今天下课之后,一个学生一脸汗且很严肃的来问了我几个问题。
为什么#include<conio.h>文件头去掉.h就不行了?在用到getch()函数的时候要包含这个文件头。
这个。。。我想没有为什么吧?我只能告诉他说因为getch()只存在<conio.h>中,没有在<conio>然后std中~~~
然后他又问我,rand()函数的头文件是哪个?#include<stdlib.h>? ~~~~~~~~~~我想说,为什么还要问呢?
回到宿舍洗完澡之后,我又想起这个问题,觉得我有必要把正经的能让程度按任意键继续的那个函数找出来,然后我常旧百度了一下。
答案是这样的:如果用stdio.h,那可以用getchar();如果用stdlib.h,那就用system("PAUSE");如果用conio.h,那就用getch()。
然后我编了个小程序去试一下,因为我记得,在VC6.0环境下,用getchar()并不需要加头文件stdio.h。
我的程序如下:
#include<iostream>
using namespace std;
int main()
{
int i;
cin>>i;
cout<<i<<endl;
getchar();
return 0;
}
然后运行结果是,它根本没有停留,依然自我的结束了运行。
正当我想下个结论说"当getchar()遇上cin的时候它就失效了"的时候,我看到了这样一个答案:因为用getchar()只能接收到一个字符,当你输入n值后,按了回车键,这个值在windows平台下是两个ASCII字符/n/r也就是回车换行,当回车时/n被控制台接收而/r没有,/r让紧接其后的getchar()接收了,于是就出现了以上情况。
哦~~~原来如此。
但是,getch()就没有这个问题,我试过了。
然后我就教他们说,用一个cin语句,让界面停留一下等待用户输入,这样我们就可以看得到界面了。(我觉得目前为止,它们也还只能接受这种方式吧?)
今天下课之后,一个学生一脸汗且很严肃的来问了我几个问题。
为什么#include<conio.h>文件头去掉.h就不行了?在用到getch()函数的时候要包含这个文件头。
这个。。。我想没有为什么吧?我只能告诉他说因为getch()只存在<conio.h>中,没有在<conio>然后std中~~~
然后他又问我,rand()函数的头文件是哪个?#include<stdlib.h>? ~~~~~~~~~~我想说,为什么还要问呢?
回到宿舍洗完澡之后,我又想起这个问题,觉得我有必要把正经的能让程度按任意键继续的那个函数找出来,然后我常旧百度了一下。
答案是这样的:如果用stdio.h,那可以用getchar();如果用stdlib.h,那就用system("PAUSE");如果用conio.h,那就用getch()。
然后我编了个小程序去试一下,因为我记得,在VC6.0环境下,用getchar()并不需要加头文件stdio.h。
我的程序如下:
#include<iostream>
using namespace std;
int main()
{
int i;
cin>>i;
cout<<i<<endl;
getchar();
return 0;
}
然后运行结果是,它根本没有停留,依然自我的结束了运行。
正当我想下个结论说"当getchar()遇上cin的时候它就失效了"的时候,我看到了这样一个答案:因为用getchar()只能接收到一个字符,当你输入n值后,按了回车键,这个值在windows平台下是两个ASCII字符/n/r也就是回车换行,当回车时/n被控制台接收而/r没有,/r让紧接其后的getchar()接收了,于是就出现了以上情况。
哦~~~原来如此。
但是,getch()就没有这个问题,我试过了。
相关文章推荐
- [C++] 用C++实现“按任意键继续”
- 《算法导论》中的查找任意顺序值的C++实现
- shell脚本实现按任意键继续和ctrl+c取消
- c++实现的任意进制数转十进制数算法
- 详解Python实现按任意键继续/退出的功能
- 用C++实现在键盘上输入任意个数
- c++实现图像旋转任意角度
- 基于C++任意点数的FFT/IFFT(时域和频域)实现
- C++ 实现任意基本类型转换为 string 类型
- linux下C语言实现按任意键继续~~
- C++任意进制转任意进制的转换函数实现
- C++通过ostringstream实现任意类型转string
- 用c++实现输入任意两个日期 计算相隔天数
- 基于C++任意点数的FFT/IFFT(时域和频域)实现
- 实现python版本的按任意键继续/退出
- C++实现任意类型键值存储的字典
- C++通过ostringstream实现任意类型转string
- C++实现——任意进制之间的转换
- c++ 实现双向链表构造函数,拷贝构造函数,析构函数,输出操作符重载,赋值操作符重载,头插尾插,头删尾删,任意位置插入,任意位置删除,查找等
- 怎么砸linux先c语言中实现按任意键继续~~