读取一些整数,然后读取C++中的一行文本

Reading some integers then a line of text in C++

提问人: 提问时间:10/3/2008 最后编辑:Gilles 'SO- stop being evil' 更新时间:9/16/2012 访问量:450

问:

我正在读取 C++ 程序中的输入。首先是一些整数,然后是字符串。当我尝试读取字符串时,它不会读取用户键入的行:相反,我得到一个空行,这是用户在键入整数后按下时。getline(cin,stringname);Enter

cin>>track.day; //Int
cin>>track.seriesday; //Int
getline(cin,track.comment); //String

如何清除(不起作用),以便字符串不会用“enter”键填充自己?cincin.clear()

这是一个正常的输入接收,在代码的顶部没有什么特别的, 我遇到了这样的问题,但我忘记了解决方案 我需要以某种方式清除字符串,以便字符串不会被“enter”键填充。cin

C++ 字符串 输入 换行符 IOSTREAM

评论

0赞 Lev 10/3/2008
你的问题很难理解。请澄清。
0赞 dguaraglia 10/3/2008
你能把代码粘贴到你读取整数的地方吗?另外,您使用的是什么编译器,在哪个平台上?

答:

2赞 Evan Teran 10/3/2008 #1

我认为你的 cin of the ints 没有阅读句子前的新行。CIN 跳过前导空格,并在遇到非数字(包括空格)时停止读取数字。

所以:

std::cin >> num1;
std::cin >> num2;
std::cin.ignore(INT_MAX, '\n'); // ignore the new line which follows num2
std::getline(std::cin, sentence);

可能对你有用