【发布时间】:2022-01-05 15:41:59
【问题描述】:
我有以下代码提示用户输入猫的年龄和名字:
#include <iostream>
#include <string>
int main()
{
int age;
std::string name;
std::cin >> age;
std::getline(std::cin, name);
if (std::cin)
{
std::cout << "My cat is " << age << " years old and their name is " << name << std::endl;
}
}
我发现已经成功读取了年龄,但没有读取名称。这是输入和输出:
Input: "10" "Mr. Whiskers" Output: "My cat is 10 years old and their name is "
为什么在输出中省略了名称?我已经给出了正确的输入,但是代码以某种方式忽略了它。为什么会这样?
【问题讨论】:
-
我相信
std::cin >> name && std::cin >> std::skipws && std::getline(std::cin, state)也应该按预期工作。 (除了下面的答案)。
标签: c++ input iostream istream c++-faq