Need help in putting data into an array in c++

  • Context: C/C++ 
  • Thread starter Thread starter googled123
  • Start date Start date
  • Tags Tags
    Array C++ Data
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 4K views
googled123
Messages
1
Reaction score
0
Hi guys,
I need to create an array in c++. But before I declare how many elements are in the array I want to prompt the user for input. I want to ask the user how many elements do they want in the array.
What ever the user said, 5 or 20. I then want to enter these 5 values or 20 values myself.
hope you can help.
 
Physics news on Phys.org
You may want to consider using the c++ structure "vector" rather than an array. A vector v (of double values in this example) of size N is created by
Code:
  // ... determine the value of N here ...

  // create a vector of N double values.
  std::vector<double> v(N);
The usage is the same as for an array (except for extra options that you may find out some day).
 
I'm guessing this is a class assignment, so you need to use an array instead of a vector. But for future reference...

Going further from Timo's example, you can declare the vector to have zero size initially, and then let it automatically expand as you add data to it. That way, you don't have to ask the user how many numbers he's going to enter.

Code:
#include <iostream>
#include <vector>

using namespace std;

int main ()
{
    vector<int> numbers;  // has length zero, initially

    cout << "Enter some numbers, terminating with control-D:" << endl;

    int n;
    while (cin >> n)
    {
        numbers.push_back(n);  // append n to the vector and expand
                               // the vector as necessary
    }

    // the size() member function tells you how big the vector is

    cout << "You entered:" << endl;
    for (int k = 0; k < numbers.size(); ++k)
    {
        cout << numbers[k] << endl;
    }

    return 0;
}

Input/output:

Code:
jtbell$ g++ vector_demo.cpp
jtbell$ ./a.out
Enter some numbers, terminating with control-D:
12
23
34
45
[I](control-D entered here)[/I]
You entered:
12
23
34
45
jtbell$