首页 >后端开发 >C++ >为什么使用'>>”运算符后'getline”不提示输入?

为什么使用'>>”运算符后'getline”不提示输入?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-30 11:26:11653浏览

Why Doesn't `getline` Prompt for Input After Using the `>>` 运算符?
>` 运算符? " />

getline 不提示输入

此代码片段中,使用 >> 运算符后使用 getline 时会出现问题。当 >> ; 用于读取输入,用户的输入后跟一个保留在输入缓冲区中的换行符,当紧随其后调用 getline 时,此行为会出现问题。期望读取一行输入,但找到换行符并终止而不提示用户。

解决方案:

要解决此问题,有两种可行的解决方案:

  1. 使用忽略来消耗换行符:
    在使用 getline 之前调用忽略以消耗输入缓冲区中的换行符。

    cin.ignore();
    getline(cin, mystr);
  2. 仅使用 getline:
    不要混合使用 >> 和 getline,而是专门使用 getline 来读取所有输入,并且可以简化代码。消除了与换行符相关的潜在问题。

    getline(cin, name);
    getline(cin, i);
    getline(cin, mystr);

以上是为什么使用'>>”运算符后'getline”不提示输入?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn