【问题标题】:Reading some integers then a line of text in C++读取一些整数,然后在 C++ 中读取一行文本
【发布时间】:2010-09-14 21:48:40
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你的问题很难理解。请澄清。
  • 您能否将代码粘贴到您读取整数的位置?另外,您使用的是什么编译器,在哪个平台上?

标签: c++ string input newline iostream


【解决方案1】:

我认为您的整数 cin 不是在句子前阅读新行。 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);

可能对你有用

【讨论】:

    猜你喜欢
    • 2015-04-11
    • 2019-05-10
    • 2020-08-11
    • 2015-01-27
    • 1970-01-01
    • 2021-12-11
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多