一、有时候我们想要输入一组数据,但是我们不知道需要输入多少个数。例如:要求通过键盘来输入一组正整数,然后回车输出这组正整数。就像下面这样的。
二、代码
#include <iostream>
using namespace std;
const int MAX_SIZE = 1000;
int main()
{
int array[MAX_SIZE];
int a = 0;
while (cin >> array[a])
{
a++;
if (cin.get() == '\n')
break;
}
// 输出数组元素
for (int i = 0; i < a; ++i)
cout << array[i] << " ";
cout << endl;
return 0;
}
三、代码分析
当我们输入第一个数字 12 时,程序进入 while 循环,执行 a++ ,然后点一下空格键,此时 cin.get()函数就会返回一个字符 ‘ ’ ,程序执行 if 判断,不成立继续 while()循环,当我们输入一个数字程序又来到if的判断时,回车,此时 cin.get()函数就会返回一个换行符 ‘\n’ ,判断出成立,就 break 推出循环了。
在输出部分,由于在输入的部分当我们进行回车的时候程序已经执行了一遍 a++ 的,所以是 i < a 。