不要忽略c ++中的第一个字符

时间:2017-06-01 02:23:10

标签: c++ getline

我正在尝试读取一行字符,但只输出第二个和第四个字符。我无法忽略第一个角色。我必须使用get,peek和ignore函数。这是我的代码!

#include<iostream>
#include<iomanip>

using namespace std;

int main()
{

char char2, char4;

cout << "Enter an arbitary line. "<<endl;



cin.get(char2);
cout << char2;
cin.get(char4);
cout << char4;

cin.ignore(1, '\n');


cin.peek();
cin.get(char2);
cout << char2 << endl;


    return 0;
}

3 个答案:

答案 0 :(得分:1)

模式是继续读取输入流并将读取表达式放在while循环中,如下面的代码所示,这样循环自动退出而无需显式检查

#include <iostream>

using namespace std;

int main() {
    auto ch = char{};
    auto counter = 0;

    while (cin.get(ch)) {
        counter++;
        if (ch == '\n') {
            counter = 0;
            continue;
        } else if (counter == 2 || counter == 4) {
            cout << ch;
        }
    }

    return 0;
}

答案 1 :(得分:0)

我这样做的方法是使用字符数组...

#include <iostream>

using namespace std;

int main(){

char characterArray[4];
cout << "please enter four characters: ";
cin >> characterArray;
cout << characterArray[1] << " " << characterArray[3];

return 0;
}

答案 2 :(得分:0)

使用#include <iostream> #include <string> int main() { std::string line; if (std::getline(std::cin, line)) { int n = line.size(); if (n >= 2) { std::cout << line[1] << "\n"; } if (n >= 4) { std::cout << line[3] << "\n"; } } } 读取一行,如果可能,打印第二个和第四个字符。

$(this)