c++ - CPP中的getline和cin

标签 c++ c++11

<分区>

我有以下代码,其中 cin 在 getline 之前,getline 正在捕获新行,因此不会为其变量分配任何值;代码是

int main(){
    string a,b;
    int n;
    cin>>n;
    getline(cin,a);
    cout<<a;
    return 0;
}

PS:一旦我在输入 No 后按下回车键,程序就会结束(即 getline 捕获换行符,因此 a 为空。如果有人可以建议我学习基本 I/O 概念的资源,那就太好了在 Cpp 中)

最佳答案

当您输入“No”(不是有效整数)时,您的 cin 流在 cin >> n 表达式之后处于错误状态。因此,没有进一步的输入将起作用,特别是,您的 getline 将不会尝试读取一行。

关于c++ - CPP中的getline和cin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24469194/

相关文章:

c++ - 派生类和单例

C++11:非成员 rbegin()/rend() 函数

C++11 在 constexpr 函数中使用统一值初始化数组

c++ - QT中窗口的排列顺序

c++ - 通过void函数获取数据成员(c++)

c++ - QAction 不会连接到我的插槽

c++ - push_back() 和 emplace_back() 在幕后

c++ - const 调用运算符调用绑定(bind)的非常量成员函数

c++ - windows:是否可以将文本文件转储(直接)到命名管道中

c++ - 图像(数字/字母)识别