分类：电脑/网络-程序设计-C/C++
问题：C++中的getchar()或cin大家帮我看看为什么第一次循环 
大家帮我看看为什么第一次循环x=getchar();没执行？而后几次却可以执行？把那句改为 cin;也是同样的效果．#include <tream>using namespace std;int main(){    char s[3][4];    int n;    char x;    cin>>n;    for(;n>0;n--){        cout<<n<<"执行 getchar() 之前"<<endl;        x=大家帮我看看为什么第一次循环x=getchar();没执行？而后几次却可以执行？把那句改为 cin;也是同样的效果．#include <tream>using namespace std;int main(){    char s[3][4];    int n;    char x;    cin>>n;    for(;n>0;n--){        cout<<n<<"执行 getchar() 之前"<<endl;        x=getchar();        cout<<"执行完 getchar(),输入字符:"<<endl;        gets(s[0]);        gets(s[1]);        gets(s[2]);     }}
回答：没有清除 cin的缓冲区
因为你
cin>>n的时候，你从输入流提取走的只是数字，而没有把'\n'提取走，所以你的
第一个
x = getchar()实际是执行了的，得到了'\n'
你可以在
cin>>n;
之后
cin.clear()清一下缓冲区

 我的网站，关于C/C++，C#等编程的，欢迎看看。