002
26.10.2006, 09:39 Uhr
cybrid
|
Hallo Pler,
ich habs mittlerweile so einigermaßen hinbekommen. Nicht schön, aber es tut's erstmal.
Was ich nicht so ganz verstehe ist das strtok. Wieso bekomme ich in der untergeordneten Schleife das 1. String Stück nicht ausgegeben und muß es mir vor der Schleife ausgeben lassen?
Da ich in der endgültigen Ausgabe die beiden benötigten Werte vertauschen muß und ich es nicht schaffe den ersten Wert in einer Variable abzulegen, macht mir das Probleme. So wie es jetzt ist, bekomme ich erst XKoord und dann YKoord ausgegeben. Es muß aber genau andersherum sein.
Besser wäre es die Zeile in ein Array einzulesen, welches direkt die Zeile aufteilt. Dann könnte ich bei der Ausgabe in etwa sowas machen: cout << koord[1] << "," << koord[3] << endl; Wie kann man das machen? Das wäre perfekt.
Ausserdem muß ich die String auch noch durch 100 teilen. Wie wandelt man ein string in einen Int?
Den Rest kriege ich mittlerweile hin.
Hier der wichtigste Teil meines bisherigen Codes.
Code: |
... char lineBuffer[MAXLEN];
int i=0; int y=0; char* koord=strtok(lineBuffer,";");
while (true) { fin.getline(lineBuffer,MAXLEN); if (fin.eof()) return false; char* xkoord=strtok(lineBuffer,";"); cout << "XKoord" << i << "=" << xkoord << endl; //würde ich mir gerne sparen
while ( (xkoord = strtok(NULL, ";")) ) { if (y==2) //Ich brauche nur das 2. String Stück aus der Zeile { cout << "YKoord" << i << "=" << xkoord << endl; } y++; } i++; y=0; }
|
Dieser Post wurde am 26.10.2006 um 09:43 Uhr von cybrid editiert. |