Przepisanie oddzielonych spacjami oraz zmianami wiersza wartości z pliku do jednej tablicy

0

Witam.
Na początku chciałbym przeprosić za mój praktycznie kompletny brak umiejętności programistycznych. Mam za zadanie napisać program w którym na początku dane zostaną wgrane z pliku tekstowego wyglądającego tak:

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

w taki sposób, że 1 znajdzie się w a[1,1], 2 w a[2,1], 3 w a[3,1], 6 w a[1,2] itd.
Jak tego dokonać?

0

Rozdzielić po spacji i wczytać do tablicy.
Poszukaj pod kątem c++ string explode.

0

@Patryk27 tutaj wczytywanie jest odwrotne. Pierwszy pomysł jaki mi wpada to stworzyć dwie pętle. Pierwsza będzie działać w dół pliku a druga będzie wybierać która kolumne ma zczytywać, można sprawdzać która to spacja.

pseudokod

 
PoruszajSiePoKolumnach (sprawdz czy nie "\n")
{
  PoruszajSiePoWierszach(sprawdz czy niekoniec pliku)
  {
    zczytaj liczbę (wpisz do tablicy o indeksach [Kolumna][Wiersz]) 
    zejdz niżej
  }
  przejdz do kolejnej kolumny (zwiększasz licznik ile po którym ' ' ma być liczba)
}
0
string l;
while(in>>l)
{
    tablica[i][j]=toInt(l);
    ++i;
    if(!(i%5))
    {
        ++j;
        i=0
    }
}
0

Czy to że w każdym wierszu twojego przykładu jest 5 liczb to przypadek czy nie? Bo jeżeli zawsze masz w każdym wierszu 5 liczb lub N liczb gdzie tą N znasz przed otwarciem pliku to można to zrobić w prostszy sposób.

0

N jest podane w pierwszym wierszu, potem jest jakby tablica o wymiarach 5x5

0
unsigned N;
ifstream fin("plik.txt");
fin>>N;
vector<vector<int> > Tb(N,vector<int>(N,0));
for(unsigned y=0;y<N;++y) for(unsigned x=0;x<N;++x) fin>>Tb[y][x];
0

Czy przed tym kawałkiem powinny się znaleźć jakieś deklaracje (N/Tb/vector)?
Nie mogę odpalić programu, ponieważ znajduje dwa błędy w linijce zaczynającej się od vector<vector...

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