Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » aus dem file auslesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.12.2006, 17:11 Uhr
~clara
Gast



C++:
ifstream fin(argv[1]);
    int m,n;
    vector<vector<int> > cod(4,3);
    while(!fin.eof())
    
    
    {
          fin >> n>>m;
          
          for(int i=0;i<m;i++) {
                 for(int j=0;j<n;j++) {
                         fin>>cod[i][j];}
                         }
        
    }
    fin.close();



Mein file sieht so aus:
3 4
0 0 1
0 1 1
1 0 1
1 1 1
Das Problem: cod(4,3) will ich gerne so deklarieren:

C++:
vector<vector<int> > cod(m,n);


Das kann ich aber nicht da er mir ja erst spaeter m und n aus dem file ausliest.

Meine Frage:
Wie lese ich aus dem Feile zuerst nur n und m aus, und danach alles andere(also den code)?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.12.2006, 17:13 Uhr
Pler
Einer von Vielen
(Operator)


Das musst du es eben nach dem einlesen deklarieren.
In C++ kannst du an jeder Stelle Variablen deklarieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.12.2006, 17:20 Uhr
~clara
Gast


Ja, das weiss ich. Sowas will ich ja auch machen.
Ich will aber zuerst nur die erste Reihe auslesen.
Danach deklarieren.
Und dann mit dem ausslesen fortsetzen.

Wie kann ich nur eine Reihe auslesen und dann mit dem lesen fortsetzen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.12.2006, 17:33 Uhr
Pler
Einer von Vielen
(Operator)


so (nicht getestet)

[code cpp]
ifstream fin(argv[1]);
int m,n;
while(!fin.eof())


{
fin >> n>>m;
vector<vector<int> > cod(n,m);
for(int i=0;i<m;i++) {
for(int j=0;j<n;j++) {
fin>>cod[i][j];}
}

}
fin.close();
[/code}

Dieser Post wurde am 06.12.2006 um 17:34 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.12.2006, 18:04 Uhr
~clara
Gast


Ja, sowas hatte ich auch schon geschrieben. Das Problem ist aber dabei dass dann cod(n,m) nur in der while Schleife bekannt ist d.h. wenn ich spaeter meine gemachte funktion
Schreibe(cod,m,n) aufrufe, sagt er dss cod ueberhaupt nicht deklariert ist.
Also musste ich irgendwie zuerst aus der wheilschleife gehen, dann cod deklarieren, und dann wieder auslesen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
06.12.2006, 18:13 Uhr
Pler
Einer von Vielen
(Operator)


Na dann nutz eben vector::push_back()
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: