【发布时间】:2018-06-30 20:22:48
【问题描述】:
我想将数字读入一个固定大小为 10 的静态数组,但用户可以通过输入字符 E 来中断循环。
这是我的代码:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int myArray[10];
int count = 0;
cout << "Enter upto 10 integers. Enter E to end" << endl;
for (int i = 0; i < 10; i++)
{
cout << "Enter num " << i + 1 << ":";
cin >> myArray[i];
if (myArray[i] != 'E')
{
cout << myArray[i] << endl;
count++;
}
else
{
break;
}
}
cout << count << endl;
system("PAUSE");
return 0;
}
但是,我在输入E 时得到以下结果:
Enter upto 10 integers. Enter E to end
Enter num 1:5
5
Enter num 2:45
45
Enter num 3:25
25
Enter num 4:2
2
Enter num 5:E
-858993460
Enter num 6:-858993460
Enter num 7:-858993460
Enter num 8:-858993460
Enter num 9:-858993460
Enter num 10:-858993460
10
Press any key to continue . . .
如何以最简单的方式修复此代码?
【问题讨论】:
-
因为 cin 无法将 char 读入
int。您可以改为读取一个字符串,并检查第一个字符是否为'E'。