如果(CIN >> number_1)不起作用

if (cin >> number_1) doesn't work

本文关键字:gt 不起作用 number 如果 CIN      更新时间:2023-10-16

我在读一本c++的书,叫做《c++编程原理与实践》。

我在练习if语句的那一章。

一个练习是,当你输入1-4时,它会用字母表示。1 = 1,3 = 3,以此类推。但是我似乎不能做出正确的if语句。

下面是我的代码:
#include "stdafx.h"
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
inline void keep_window_open() {
    char ch; cin >> ch;
}

int main()
{
    cout << "Enter 0, 1, 2, 3 or 4n";
    int number_0 = 0;
    int number_1 = 1;
    int number_2 = 2;
    int number_3 = 3;
    int number_4 = 4;

    if (cin >> number_0){
        cout << "Zero";
    }
    if (cin >> number_1){
        cout << "One";
    }
    if (cin >> number_2){
        cout << "Two";
    }
    if (cin >> number_3){
        cout << "Three";
    }
    if (cin >> number_4){
        cout << "Four";
    }
    keep_window_open();
}

任何帮助都是感激的!

你对cin的理解是扭曲的。

cin将从stdin(在您的情况下是键盘)读取一个值输入到一个变量中。

cin >> number_0;

将值读入number_0。你可以写

int x;
cin >> x;
if(x == 0) {
    cout << "That's a zero!" << endl;
}

甚至:

const int number_0 = 0; //Store 0 just in case math changes
if(x == number_0) {
    cout << "That's a zero!" << endl;
}