if(cin>> number_1)不起作用

时间:2015-07-07 22:27:31

标签: c++ if-statement visual-studio-2013

我正在阅读一本名为Programming Principles and Practice Using C ++的c ++书。

我在一章中用if语法练习。

当你输入1-4时,一个练习是这样的,它用字母表示。 1 =一,三=三,依此类推。但是我似乎无法做出正确的判断。

这是我的代码:

#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 4\n";
    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();

}

感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

您对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;
}