为什么我的程序在使用 cin 而不是 getline 时可以工作?[复制]

Why my program works when using cin but not getline? [duplicate]

提问人:spacing 提问时间:11/13/2023 更新时间:11/13/2023 访问量:36

问:

我的程序使用 cin 运行良好,但在使用 getline 时失败,为什么会这样?

当我使用 getline 键入字符串变量时,程序在键入字符串变量后立即结束

int a, b;
string name;
cin >> a;
getline(cin, name);
cin >> b;

当我改用 cin 时,它可以完美地工作,这是我对程序所做的唯一更改

int a, b;
string name;
cin >> a;
cin >> name;
cin >> b;

为什么会这样?

C++ cin getline

评论

0赞 Eljay 11/13/2023
当我输入时对我有用(作为回车键)。17 bob\n23\n
0赞 Pete Becker 11/13/2023
次要点:是一个对象,它用于这两个输入操作。第一个使用流提取器 () 从中读取数据,第二个使用从 中读取数据。std::cin>>std::cingetlinestd::cin
0赞 tbxfreeware 11/13/2023
尝试在每个输入之前插入提示:您将看到第一个在输入流上留下提示。 读取该内容,并认为您要将空行存储到 中。如果没有提示,您可能会输入一个名称来响应下一个 ,这会导致失败,而不输入 。cout << "Enter a: "; cin >> a; cout << "Enter name: "; getline(cin, name); cout << "Enter b: "; cin >> b;cin >> a'\n'getline\n'namecin >> bcinb

答: 暂无答案