000
05.05.2005, 14:54 Uhr
Maks
|
Hier mein Programmcode: Das Programm soll die angegebene Textdatei zeilenweise einlesen und alles in einen Zeilenstring schreiben, der durchnumeriert wird
C++: |
Zeile [zaehler] [stringlaenge] = buffer;
|
So weit so gut, d.h. es funktioniert wunderbar. nur wenn ich weiter unten
C++: |
for (unsigned int i=0; i < buffer.length(); i++)
{ // cout << "Zeile [zaehler] [stringlaenge]: - - - - - -" << Zeile [zaehler] [stringlaenge]<< endl; Buchstabe [i] = (Zeile [zaehler] [stringlaenge].substr(i,1)); cout << "Buchstabe "<< i << " :" << Buchstabe [i] << endl; }
|
versuche die Buchstabe einzeln zu extrahieren, dann übersetzt der Compiler ohne Probleme nur wird bei "cout" NICHTS angezeigt. Das komische ist nur, wenn man alles in der Form ausgibt:
Code: |
Zeile cout << [6] [11];
|
dann wird alles korrekt ausgegeben.
An dem Gültigkeitsbereich der Variablen kann ja nicht liegen, da alle in main definiert sind (ich weiß, schlechter Programmierstil, wollte es aber ÜBERHAUPT mal zum Laufen bringen und dann in Proceduren umschreiben)
Es kann kein so großes Problem sein, aber ich komm einfach nicht drauf. Für einen Hinweis wäre ich dankbar!
C++: |
#include <iostream.h> #include <fstream.h> #include <string>
int main() {
static int zaehler=0; static int stringlaenge; //static int unsigned i=0;
static string Zeile [200][200]; static string Buchstabe [100]; //string Wort [100];
ifstream fin("D:/Downloads_D/C++ 01.05.05/Working/whatever1.txt"); string buffer;
cout << "Hier der Inhalt der Datei:\n";
while (fin.good()) { getline(fin,buffer,'\n');
// cout << "buffer: "<< buffer << " " << endl;
zaehler=zaehler+1; // cout << "zaehler: " << zaehler << endl; stringlaenge = buffer.length(); // cout << "stringlaenge: " << stringlaenge << " "; Zeile [zaehler] [stringlaenge] = buffer; cout << "Zeile "<< zaehler << " " << Zeile [zaehler] [stringlaenge] << " ," << "stringlaenge: " << stringlaenge << endl;
}
for (unsigned int i=0; i < buffer.length(); i++)
{ // cout << "Zeile [zaehler] [stringlaenge]: - - - - - -" << Zeile [zaehler] [stringlaenge]<< endl; Buchstabe [i] = (Zeile [zaehler] [stringlaenge].substr(i,1)); cout << "Buchstabe "<< i << " :" << Buchstabe [i] << endl; }
cout << "\nEnde der Ausgabe\n"; fin.close(); return 0; }
|
Code: |
D:\Downloads_D\C++ 01.05.05\Working>bcc32 ZeichenLesen5.cpp Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland ZeichenLesen5.cpp: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
D:\Downloads_D\C++ 01.05.05\Working>ZeichenLesen5 Hier der Inhalt der Datei: Zeile 1 Hello World ,stringlaenge: 11 Zeile 2 Predicable choice of output, eh?? ,stringlaenge: 33 Zeile 3 ,stringlaenge: 0 Zeile 4 26 ,stringlaenge: 2 Zeile 5 34 ,stringlaenge: 2 Zeile 6 36 ,stringlaenge: 2 Zeile 7 ,stringlaenge: 0 Zeile 8 schwarz Dutzend1 13,14,15 Kolonne2 ,stringlaenge: 34 Zeile 9 Hello World ,stringlaenge: 11 Zeile 10 Predicable choice of output, eh?? ,stringlaenge: 33 Zeile 11 Dutzend1 Dutzend2 passe 4 7 23 4,5,6,7,8,9 ,stringlaenge: 42 Zeile 12 neue Eingabe 00:47 Uhr ,stringlaenge: 22 Zeile 13 Hello World ,stringlaenge: 11 Zeile 14 Predicable choice of output, eh?? ,stringlaenge: 33 Zeile 15 abcdefghijklmnopqrstuvwxyz ,stringlaenge: 26 Zeile 16 Dutzend3 Dutzend2 0,1,2,3 ,stringlaenge: 25 Zeile 17 schwarz 27 30 4,5,6,7,8,9 Dutzend1 Dutzend2 Kolonne 2 ,stringlaenge: 53
Zeile 18 Dutzend2 Dutzend3 30 35 17 Kolonne3rot 24 18 Dutzend3 4,5,6,7,8,9 Kolon ne3 ,stringlaenge: 74 Zeile 19 ,stringlaenge: 0
Ende der Ausgabe
|
Bearbeitung von 0xdeadbeef: |
Die code-tags waren ein guter Anfang, aber cpp-tags sind besser, da gibts Synatxhighlighting.
|
Dieser Post wurde am 05.05.2005 um 16:57 Uhr von 0xdeadbeef editiert. |