cin 和 cin.ignore() 无法正常工作

cin and cin.ignore() doesn't work properly

提问人:Elio Baharan 提问时间:11/9/2023 最后编辑:genpfaultElio Baharan 更新时间:11/9/2023 访问量:65

问:

我在 cin 和 cin.ignore() 方面遇到了问题。这是我的代码,它没有任何错误,但它不能正常工作。当我想查看 ID 结果时,它向我展示了一些奇怪的东西。

#include <iostream>
#include <cstring>

using namespace std;

class watchTower {
private:
    int numberOfAirplane;
    int runway;
    int numberOfOrders;
    string menu;
    char ID[][11];


public:
    void setNumberOfAirplane(int n) { numberOfAirplane = n;}
    void setRunWay(int k) { runway = k;}
    void setID(char id[][11]);
    void setNumberOfOrders(int q) { numberOfOrders = q;}
    void display();
};


void watchTower::display() {
    cout << numberOfAirplane << ' ' << runway << ' ' << numberOfOrders << endl;
    for(int i = 0; i < numberOfAirplane; i++)
        cout << ID[i] << endl;

}

void watchTower::setID(char (*id)[11]) {
    for(int i = 0; i < numberOfAirplane; i++)
        for(int j = 0; j < 11; j++)
            ID[i][j] = id[i][j];
}



int main() {
    int n, k, q;
    cin >> n >> k;
    char id[n][11];
    for(int i = 0; i < n; i++) {
        cin.ignore(256, '\n');
        cin >> id[i];
        cin.clear();

    }
    watchTower input;
    input.setNumberOfAirplane(n);
    input.setRunWay(k);
    input.setID(id);
    cin >> q;
    input.setNumberOfOrders(q);
    input.display();
}

如您所见,我尝试了 cin.ignore 和 cin.clear,但它们不起作用。 顺便说一句,这些是我的输入。

3 4 0000000001 0000000002 0000000003 5

这些是我的输出不正确。

3 4 5 0000000001 ♣ 0 0000000003

C++ iostream cin

评论


答: 暂无答案