程序程序源码如下:
#include "stdafx.h"
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char firstname[20];
char lastname[20];
char grade;
int age;
cout << "what is your first name? ";
cin.getline(firstname,20);
cout << "what is your last name? ";
cin.getline(lastname,20);
cout << "what letter grade do you deserve? ";
cin >> grade;
cout << "what is your age? ";
cin >> age;
cout << "Name:" << lastname << "," << firstname << endl;
cout << "Grade:" << grade << endl;
cout << "Age:" << age << endl;
return 0;
}
在运行到cin>>age;时,我输入年龄后就直接被终止程序了是为什么,为什么后面的代码运行不了了??求指教
后面的代码是运行了的,只不过太快,一闪而过啦。
可以在return 0的前面加一个getchar();
是运行了,你可以在return 0 打个断点试试,就会看到输出结果了
内存溢出的问题,在cin>>age;前面加上这个fflush(stdin);或者c++的刷新缓冲区的方法,
在程序最后加上
system("pause");
把程序停下来就看到结果了。
另外,你的输入不能超过19个字符(因为结束符也占用一个字符)
getline会吃掉回车,缓冲区滞留回车,当做数字读入产生错误,前面加上getchar()试试