 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Susanne Guest
|
Posted: Fri Nov 17, 2006 4:36 pm Post subject: Zahlen zeilenweise einlesen |
|
|
Liebe C++ Experten,
ich habe eine txt-Datei in folgendem Format
23 17 6 3 -12 2
3 11 2 4
3 76 2 1 555
- also Zeilen von integer Zahlen unterschiedlicher Laenge.
Jede einzelne Zeile moechte ich gerne in eine Art
Vektor einlesen. Ein Aufruf von etwa
myArray[i][j] soll den Eintrag in der i-ten Zeile und j-ten Spalte
ansprechen. Nach jedem Zeilenende sollen die darauffolgenden Werte
in einen neuen Vektor eingelesen werden.
Im obigen Beispiel liefert myArray[2][2] den Wert 11.
Als blutiger C++ Anfaenger habe ich leider keinen Plan wie ich
das anstellen soll. Koennt Ihr mir weiterhelfen? Idealerweise mit
einem (vollstaendigen) Code?
Besten Dank,
Susanne |
|
| Back to top |
|
 |
Stefan Reuther Guest
|
Posted: Sat Nov 18, 2006 5:27 pm Post subject: Re: Zahlen zeilenweise einlesen |
|
|
Hallo,
Susanne wrote:
| Quote: | ich habe eine txt-Datei in folgendem Format
23 17 6 3 -12 2
3 11 2 4
3 76 2 1 555
- also Zeilen von integer Zahlen unterschiedlicher Laenge.
|
Das klingt stark nach Hausaufgabe. Sollte dem nicht so sein, kannst du
ja mal deinen bisherigen Lösungsansatz bzw. Kenntnisstand posten.
| Quote: | Jede einzelne Zeile moechte ich gerne in eine Art
Vektor einlesen.
|
Also ein std::vector<std::vector<int> >.
| Quote: | Ein Aufruf von etwa
myArray[i][j] soll den Eintrag in der i-ten Zeile und j-ten Spalte
ansprechen. Nach jedem Zeilenende sollen die darauffolgenden Werte
in einen neuen Vektor eingelesen werden.
|
Ich würde zeilenweise lesen (wie man das macht, steht im Nachbarthread),
die Zeilen in einen std::stringstream packen und dort halt mittels,
quick&dirty,
int n;
while (strstr >> n)
vec.push_back(n);
rauslesen.
Stefan |
|
| Back to top |
|
 |
Andre Poenitz Guest
|
Posted: Sat Nov 18, 2006 7:09 pm Post subject: Re: Zahlen zeilenweise einlesen |
|
|
Susanne <susanne_honig (AT) web (DOT) de> wrote:
| Quote: | Liebe C++ Experten,
ich habe eine txt-Datei in folgendem Format
23 17 6 3 -12 2
3 11 2 4
3 76 2 1 555
- also Zeilen von integer Zahlen unterschiedlicher Laenge.
Jede einzelne Zeile moechte ich gerne in eine Art
Vektor einlesen. Ein Aufruf von etwa
myArray[i][j] soll den Eintrag in der i-ten Zeile und j-ten Spalte
ansprechen. Nach jedem Zeilenende sollen die darauffolgenden Werte
in einen neuen Vektor eingelesen werden.
Im obigen Beispiel liefert myArray[2][2] den Wert 11.
Als blutiger C++ Anfaenger habe ich leider keinen Plan wie ich
das anstellen soll. Koennt Ihr mir weiterhelfen? Idealerweise mit
einem (vollstaendigen) Code?
|
Zeilenweise mit getline aus Datei lesen.
Aus Zeile eine istringstream konstruieren.
Aus istringstream ints auslesen und in std::vector<int> stopfen, bis es
daneben geht. Alternativ den vector-Konstruktor aus zwei Iteratoren
mit den richtigen Iteratoren fuetter.
Den vector an einen vector< vector<int> > mit push_back anhaengen.
Indizierung faengt dann mit 0 an. Wenn Du das nicht moechtest, das
Ganze noch in eine Klasse kapseln und beim Zugriff umrechnen.
Andre' |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|