cin.getline()在cin之后不起作用

时间:2013-01-27 21:47:39

标签: c++

  

可能重复:
  c++ cin input not working?

我一直在尝试使用c ++中的以下代码在整数后输入一个字符串。

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
     int n;
     char inp[10];
     cin>>n;
     //fflush(stdin);
     cin.getline(inp,10);
     cout<<inp;
     return 0;
}

当我编译并运行上面的代码时,程序只提示输入一次并且什么都不打印。我正在使用g ++来编译代码。 当我取消注释行

fflush(stdin) 

(清除输入缓冲区),程序的o / p保持不变。我不明白这里发生了什么。

1 个答案:

答案 0 :(得分:2)

#include<iostream>
#include<cstdio>
using namespace std;

int main()
{

 int n;
 char inp[10];
 cin>>n;
 cin.get();//cin.get(); just waits for enter. more approprate for this would be cin.ignore(); because it will flush the input stream for cin.
 cin.getline(inp,10);
 cout<<inp;
 // cin.get(); you could use this so your program wont return0 and close right away.
return 0;
}//tested in this config it works as desired, good luck