你好,
我正在进行一项任务,我需要从控制台获取输入并将其保存到cstring。一切都编译得很好,但是当程序运行时,它只是跳过了从用户那里得到的输入。因此它将输出:“输入要插入的字符串:”然后跳过cin.getline函数,然后执行下一个命令。
这是我的头文件,cstring的声明,以及我遇到问题的代码行。
#include "stdafx.h"
#include <iostream>
#include <cstring>
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&gt;&gt; tempCString”因为它只会获得第一个空格的输入,我需要从控制台获取输入到换行符的所有内容。
谢谢
答案 0 :(得分:2)
在获得新输入之前尝试清除cin
的缓冲区:
#include <limits>
cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max());
cout << "Enter string to be inserted: " << endl;
cin.getline(tempCString, sizeof(tempCString), '\n');