如何在数组中存储大量未知长度

时间:2015-07-20 03:05:14

标签: c++

我正在尝试使用数组存储大量数据。这是我的代码:

#include "stdafx.h"
#include <iostream>

using namespace std;

void main(){
    char number[10];
    int size = 0;
    for (int i = 0; i < 10; i++){
        std::cin >> number[i];
        size++;
    }

    for (int i = 0; i < size; i++){
        std::cout << "number[" << i << "]: " << number[i] << endl;
    }

}

当我输入一个只有10位数的数字时,这样可以正常工作,但是如果我输入的数字小于那个数字,那么我的程序就会挂起,因为它等着我输入所有10位数字。

有没有办法检测用户按Enter键的时间?或者当用户输入整个数字时,某种方式告诉for循环中断?

1 个答案:

答案 0 :(得分:0)

最好不带循环输入,因为这是一个数字,否则用户必须输入一个数字,然后输入一个空格或输入以输入下一个数字,依此类推。相反,用户希望在没有空格的情况下随时输入数字并输入。

但是在这种方法中,您将无法检查用户在输入期间是否提供有效数字!您必须再次遍历数字数组以检查每个数字!

#include <iostream>
#include <string.h>

using namespace std;

int main()
{
    char number[10];
    int size = 0;
    cin >> number;
    size=strlen(number); // number of digits entered

    cout << "Number of digits entered: " << size << endl;
    cout << "Entered Number is: " << number;
}