为什么这个c++程序运行到后面运行终止

程序程序源码如下:

#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()试试