Nieznana z góry liczba wierszy

0

jak wczytac do tablicy Nieznana z góry liczbe wierszy

3

Używaj vectora i pętli.

0

Napisalem przykladowy program na wczytanie 10 liczb. Jak przeksztalcic ten program, aby wprowadzac nieznana z góry ilość liczb

#include <iostream>
#include <vector>

using namespace std;

int main()
{
   vector <int> tab;
   int x;
   for(int i=0 ; i<10;i++)
   {
       cin>>x;
        tab.push_back(x);
   }
   for( int i = 0; i < tab.size(); i++ )
    {
       cout << tab[ i ] << std::endl;
    }
    return 0;
}
0

Musisz znać warunek końcowy, czyli kiedy masz kończyć wczytać te liczby. Przykładowo takim warunkiem może być koniec strumienia wejściowego:

while (cin >> x)
    tab.push_back(x);
1

pewnie chodzi ci o coś takiego:

vector<vector<double> > readMatrix(istream &in) {
     string line;
     vector<vector<double> > matrix;
     while(getline(in, line)) {
         stringstream data(line);
         vector<double> row;
         double x;
         while(data>>x)
             row.push_back(x);
          matrix.push_back(row);
     }
     return matrix;
}
0

Troche sie pogubilem teraz, chyba za slabo sprecyzowalem o co mi dokladnie chodzi np. mamy
Wejście:
1 2 3
3 2 1
sa to dwa wiersze ktore podane zostaly z klawiatury i jak zakonczyc wprowadzanie tych liczb, jesli na poczatku nie wiedzialem ile ich bedzie. na razie cwicze tylko w codeblocks pisanie programow wiec o zadnym linuxie nie ma mowy.

0
#include <iostream>

using namespace std;

int main(){
    int a = 0, b = 0, c = 0;
    while (cin >> a >> b >> c)
    {
        cout << "wczytano " << a << " , " << b << " oraz " << c << endl;
    }
    return 0;
}

edit : pod Windowsem wprowadzanie danych w takim przypadku kończysz chyba przez ctrl + c, ale mogę się mylić

1 użytkowników online, w tym zalogowanych: 0, gości: 1