textdatei
-
wie denn? es gibt nichts danach außer leerzeichen
-
kobero schrieb:
matrix[zeile].resize(4);
Schreibe lieber:
matrix[zeile].resize(vectorSize);
auf http://www.cppreference.com/cppvector/resize.html steht:
void resize( size_type num, const TYPE& val = TYPE() );
Schaue lieber mal ab und zu dort nach
MFG Ghost
-
kobero schrieb:
es gibt nichts danach
Ach wirklich?
kobero schrieb:
außer leerzeichen
Ah so.
Bye, TGGC (Pipe my World.)
-
Leerzeichen gibt es dahinter nun auch nicht. Dies würde ja unnötig Speicher verbrauchen... Auch Leerzeichen brauchen Platz.
-
Green_Ghost schrieb:
matrix[zeile].resize(vectorSize);
wo liegt der Unterschied? Da http://www.cppreference.com/cppvector/resize.html habe ich nichts kapiert(my english is very bad)
henselstep schrieb:
Leerzeichen gibt es dahinter nun auch nicht. Dies würde ja unnötig Speicher verbrauchen... Auch Leerzeichen brauchen Platz.
wie soll ich denn das vermeiden
ich möchte einfach das Null am Ende weg habenDanke für jeden tip
-
Hab deinen Quelltext jetzt nicht durchgelesen, kann dir aber sagen, dass bei schleifen folgender Art:
while (!blabla.eof()) { }
Die schleife immer einmal zu viel ausgeführt wird.
mit einem matrix.pop_back() kannst du dann das letzte Element wieder löschen.
-
da kommt deine NULL her:
return 0;
und hier hättest du eine weitere '1' am ende:
return 1;
abhilfe:
statt
int lesen()
machst du das was die funktion wirklich zurückgibt, nämlich nichts:
void lesen() ... //return 0; <- brauchst du ja jetzt nicht mehr
//edit: üblige schreibfehler entfernt
-
Uh...der Rückgabewert von "lesen" wird nie ausgegeben, also bezweifle ich, dass er mit irgendetwas etwas zu tun hat.
Ich denke (ohne es jetzt getestet zu haben), dass in diesem Fall schon
for(spalte= 0; (spalte < vectorSize) && (inputstrom >> matrix[zeile][spalte]); ++spalte) { std::cout <<matrix[zeile][spalte]<< ' '; }
reicht. inputstrom >> matrix[zeile][spalte] liest nämlich nicht nur den Wert ein, sondern gibt auch den Stream zurück. Das heißt, sobald die Einleseoperation fehlschlägt, bricht die Schleife ab, weil der Stream sein failbit gesetzt hat und bei Umwandlung in bool false zurückgibt.
-
Hallo
Erst mal vielen Dank für eure Ideen.
Für Gast221212: vielleicht hast du recht aber wo (in welcher stelle) kann man die „ matrix.pop_back()“ einsetzen?Für enno-tyrant : 0xdeadbeef hat völlig recht , der Rückgabewert von einer Funktion wird nie automatisch ausgegeben. Trotzdem habe ich deinen Vorschlag probiert, die Null wird immer noch ausgegeben.
Für 0xdeadbeef : es hab es probiert : es werden nur die 2. und 4. Spalte ausgegeben.
Aber die Idee ist nicht schlecht. Genau dort in der for-schleife muss man was unternehmen.Danke für jeden weiteren Tip
-
kobero schrieb:
Hallo
Erst mal vielen Dank für eure Ideen.
Für Gast221212: vielleicht hast du recht aber wo (in welcher stelle) kann man die „ matrix.pop_back()“ einsetzen?nach
}while(!inputstrom.eof());
Du musst dir jedoch selbst überlegen, welchen vector du poppen willst also ob:
matrix.pop... oder matrix[ner_positon].pop...und dann noch ne Schleife für die Ausgabe schreiben!