Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> #include <fstream> using namespace std; int main() { fstream datei; int a, b; datei.open("test.txt", ios::in); } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »??Linux« (18.08.2005, 20:04)
Zitat
Original von Deluca
ich glaub du öffnest mit nano oder?
dann mach erst strg.+w und dann strg+t und da gibts dann die linie an
ich hoffe du meinst das
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> #include <fstream> using namespace std; int main() { fstream datei; int a, b; datei.open("test.txt", ios::in); int actual_row = 1; string row_content = ""; while(!datei.eof() &&actual_row <= 20){ datei >> row_content; actual_row++; } cout << row_content << endl; datei.close(); } |
Quellcode |
|
1 |
istream& fstream::seekg(streampos pos ); |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »RedWing« (18.08.2005, 23:32)
Zitat
Original von RedWing
Da wirst du wohl nich drumrum kommen jede Zeile mitzuzählen...
Quellcode
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include <iostream> #include <fstream> using namespace std; int main() { fstream datei; int a, b; datei.open("test.txt", ios::in); int actual_row = 1; string row_content = ""; while(!datei.eof() &&actual_row <= 20){ datei >> row_content; actual_row++; } cout << row_content << endl; datei.close(); }
Oder dir ist die Anzahl der Zeichen pro Zeile bekannt, da kann man dann sicherlich auch was mit
Quellcode
1 istream& fstream::seekg(streampos pos );
Quellcode |
|
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 26 |
#include <iostream> #include <fstream> using namespace std; int main() { fstream datei("test.txt", ios::in); int actual_row = 1; string row_content = ""; int pos = 0; while(datei && actual_row <= 20){ if(actual_row == 12) pos = datei.tellg(); datei >> row_content; actual_row++; } cout << row_content << endl; if(!datei) //if error bit is set (for e.g. file is at the end) set goodbit again datei.clear(); datei.seekg(pos); //positionizing file pointer to line 12 datei >> row_content; //read out line 12 cout << row_content << endl; datei.close(); } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »RedWing« (07.09.2005, 20:58)
Quellcode |
|
1 2 3 4 5 6 7 |
.... datei.seekg(0, ios::beg); /* mit ios::beg geh ich an den Dateianfang und mit 0 sag ich ihm das er vom nullten (also ersten) Zeichen lesen soll, danach lass ich den Code von RedWing durchlaufen und dann bin ich in der gewünschten Zeile... */ |
Zitat
Original von ??Linux
Ich habs jetzt gelöst, ich geh dann wieder zum Dateianfang und lass dann den Code von RedWing durchlaufen...
Ich mach das so:
Quellcode
1 2 3 4 5 6 7 .... datei.seekg(0, ios::beg); /* mit ios::beg geh ich an den Dateianfang und mit 0 sag ich ihm das er vom nullten (also ersten) Zeichen lesen soll, danach lass ich den Code von RedWing durchlaufen und dann bin ich in der gewünschten Zeile... */
bye Benny
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »RedWing« (09.09.2005, 13:55)
Zitat
Original von RedWing
Zitat
Original von ??Linux
Ich habs jetzt gelöst, ich geh dann wieder zum Dateianfang und lass dann den Code von RedWing durchlaufen...
Ich mach das so:
Quellcode
1 2 3 4 5 6 7 .... datei.seekg(0, ios::beg); /* mit ios::beg geh ich an den Dateianfang und mit 0 sag ich ihm das er vom nullten (also ersten) Zeichen lesen soll, danach lass ich den Code von RedWing durchlaufen und dann bin ich in der gewünschten Zeile... */
bye Benny
Wieso machst dus nicht so wie ich oben und merkst dir beim ersten Durchlauf die Position der 12ten
Zeile?
Dann brauchst du das File nur einmal durchzulaufen...