从用户那里获取10个整数,然后用户可以要求显示正数或负数的计数



我曾尝试运行此代码,但每次尝试,程序都会在用户回答显示正整数或负整数的问题之前完成。我做错了什么?

#include <iostream>
using namespace std;

int main() {
int number;
int positiveCount = 0;
int negativeCount = 0;
for (int i = 0; i < 10; i++) {
cin >> number;
if (number > 0) {
positiveCount++;
}
if (number < 0) {
negativeCount++;
}
}
char response;
cout << "Do you want the (p)ositive or (n)egative count? ";
cin >> response;
if (response == 'p') {
cout << "Positive count is " << positiveCount << "n";
}
if (response == 'n') {
cout << "Negative count is " << negativeCount << "n";
}
}

假设一个行为良好的用户,您的程序是良好的。

但是,它不处理意外输入。更改:

cin >> number;
if (number > 0) {
positiveCount++;
}
if (number < 0) {
negativeCount++;
}

对于处理无效输入的东西:

while ( ! cin >> number )
{
cout << "Invalid input.  Please try again.n";
// Clear error flags and ignore input from this line.
cin.clear();
std::string ignoreLine;
std::getline(cin, ignoreLine);
}
if (number > 0) {
positiveCount++;
}
else if (number < 0) {
negativeCount++;
}

最新更新