首页 > 解决方案 > 在cpp中加红一些输入行

问题描述

我正在尝试阅读以下输入:

1.第一行是一些自然数q;

2.next q行是'+'或'-'或'insert'+空格+somecharacter

由于空间的原因, cin 在这里当然不起作用,所以我尝试通过以下方式使用 getline:

int q;

cin>>q;

getchar();

while(q--){

    string s;

    getline(cin,s);

}

但以这种方式我无法读取第一行,如果我删除 getchar 我无法读取最后一行。问题可能是程序读取了一个额外的 '\n'(打印输入显示了这一点)。我怎么能解决这个问题?

在此处输入图像描述

标签: c++

解决方案


您不一定需要寻找空格,您可以先阅读,insert然后再阅读:

int q;
cin>>q;
while(q--){
    string s;
    cin >> s;
    if (s == "insert") {
        char c;
        cin >> c;
        // do something with s == "insert", c == 'h'
    } else {
        // do something with s == "+" or s == "-"
    }
}

推荐阅读