获取Cstrings的控制台输入

注意:这是在C ++中但使用C风格的字符串

你好,

我正在进行一项任务,我需要从控制台获取输入并将其保存到cstring。 一切都编译得很好,但是当程序运行时,它只是跳过了从用户那里得到的输入。 因此它将输出:“输入要插入的字符串:”然后跳过cin.getline函数,然后执行下一个命令。

这是我的头文件,cstring的声明,以及我遇到问题的代码行。

#include "stdafx.h" #include  #include  using namespace std; int main() { char tempCString[500] = {}; //...code snipit... cout << "Enter string to be inserted: " << endl; cin.getline(tempCString, 500, '\n'); //I've also tried cin.getline(tempCString, 500); //...end code snipit... return 0; } 

注意:我不能使用“cin >> tempCString”因为它只能获得第一个空格的输入,我需要从控制台获取输入到换行符的所有内容。

谢谢

在获得新输入之前尝试清除cin的缓冲区:

 #include  cin.clear(); cin.ignore(std::numeric_limits::max()); cout << "Enter string to be inserted: " << endl; cin.getline(tempCString, sizeof(tempCString), '\n'); 

请参阅如何刷新cin缓冲区?