cin,输入所需详细信息后无输出

时间:2016-03-01 11:46:57

标签: c++ netbeans cin

我是C ++的新手,正在尝试在NetBeans中创建一个基本程序。以下是我提出的代码:

int main() {

    unsigned scores[11] = {};
    unsigned grade;
    while (cin >> grade){
        if (grade <= 100){
            ++scores[grade/10];
        }
    }
    for(int i = 0; i < 10; i++){
        cout << scores[i] << endl;
    }

    return 0;
}

但是,当我输入一系列数字时

2 15 90 99 100

按回车键,程序仍在运行,没有显示结果。为什么会这样?有人可以帮帮我吗?在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你需要发送流结束字符,UNIX下的ctrl + d和windows下的ctrl-z。您还可以重构代码以读取一行(直到换行符),然后解析它:

unsigned scores[11] = {};
unsigned grade;
std::string line;
if (std::getline(cin, line)) {
    std::stringstream str(line);
    while (str >> grade) {
        if (grade <= 100) {
            ++scores[grade / 10];
        }
    }
}
for(int i = 0; i < 10; i++){
    cout << scores[i] << endl;
}