FIle einlesen, erstes Zeichen betrachten
-
Hallo,
ich hab ein Problem damit, wenn ich ein txt File einlese, das erste Zeichen aus einer Zeile zu lesen.
88 while (getline(fileIn, line)) 89 { 90 if (line[0] == '-') 91 { 92 line.erase(line.begin()); 93 stringToInt = atoi(line.c_str()); 94 bin = dec2bin(stringToInt, bits); 95 posToNeg(bin); 96 } 97 else 98 { 99 stringToInt = atoi(line.c_str()); 100 /*assert(line[0] == '1' || line[0] == '2' || line[0] == '3' || line[0] == '4' || 101 line[0] == '5' || line[0] == '6' || line[0] == '7' || line[0] == '8' || 102 line[0] == '9' || line[0] == '0');*/ 103 bin = dec2bin(stringToInt, bits); 104 } 105 fileOut << bin << endl; 106 }auf jeden fall habe ich das gefühl, das er nur das - betrachtet wenn eine 3 stellige zahl danach kommt und sonst irgendwie ignoriert.
Hat vielleicht jemand eine Idee woran das liegen kann ?
Gruß
-
Was soll das überhaupt genau machen, wenn es fertig ist (beschreib nicht, wie du es machen willst, das können wir sehen, sondern was du erreichen möchtest)? Was immer du da tust ist irgendwie über drei Ecken und mit Funktionen die eigentlich nicht gut zusammen passen gefrickelt. Kein Wunder, dass es nicht das tut, was du dir wünscht.
-
ja, vielleicht sollte ich erstmal die Leerzeichen im file ignorieren...
-
Was ich damit machen möchte ist im Prinzip, das ich ein File habe in denen pos. und neg. Zahlen stehen und diese ins Zweierkomplement umwandle und in ein neuen file schreibe.
Das Umwandeln funktioniert auch ohne Probleme, nur habe ich grad Probleme damit das file richtig einzulesen.while (getline(fileIn, line)) 90 { 91 it = line.begin(); 92 while(*it == ' ') it++; 93 if (*it == '-') 94 { 95 line.erase(line.begin(), ++it); 96 stringToInt = atoi(line.c_str()); 97 bin = dec2bin(stringToInt, bits); 98 posToNeg(bin); 99 } 100 else 101 { 102 103 stringToInt = atoi(line.c_str()); 104 assert(line[0] == '1' || line[0] == '2' || line[0] == '3' || line[0] == '4' || 105 line[0] == '5' || line[0] == '6' || line[0] == '7' || line[0] == '8' || 106 line[0] == '9' || line[0] == '0'); 107 bin = dec2bin(stringToInt, bits); 108 } 109 fileOut << bin << endl; 110 }aber irgendwie stimmt da immer noch etwas nicht mit dem einlesen von den neg. Zahlen. jetzt kommt ein glibc
-
Warum machst du dann nicht
int zahl; while (fileIn >> zahl) { // Verarbeitung }zum Lesen? Und zur Verarbeitung empfehle ich die Funktion abs, falls deine Funktion dec2bin nicht mit Vorzeichen klarkommt.
-
Vielen Dank

Funktioniert damit prima!