Fehler beim Einlesen/Speichern einer Textdatei



  • Schau, du nimmst z.B. Startwert und Endwert = 2. Dann willst du ja 2.629047437 überspringen. Da du aber einen intergralen Typen verwendest, um die Zeilen zu überspringen, passiert folgendes:
    Es wird nur die 2 gelesen, und .629047437 bleibt zurück. Beim nächsten Lesen hast du dann 0.629047437 statt 2.36151741.

    Und wir hatten doch vorhin geklärt, dass Datenreihe.close() unnötig ist.



  • Gugelmoser schrieb:

    Schau, du nimmst z.B. Startwert und Endwert = 2. Dann willst du ja 2.629047437 überspringen. Da du aber einen intergralen Typen verwendest, um die Zeilen zu überspringen, passiert folgendes:
    Es wird nur die 2 gelesen, und .629047437 bleibt zurück. Beim nächsten Lesen hast du dann 0.629047437 statt 2.36151741.

    Darauf hätte man selber kommen können...

    Und wir hatten doch vorhin geklärt, dass Datenreihe.close() unnötig ist.

    Datenreihe.close() 😕 wo??? 😃



  • Datenreihe.close() 😕 wo??? 😃

    😃 Scherzkeks.

    Wenn du jetzt noch
    -die globalen Variablen lokal machst.
    -in der for-Schleife int x=1 und ++x schreibst.
    -getch() zum Teufel jagst und statdessen

    cin.ignore(999999,'\n');
    cin.get();
    

    schreibst, ist der Codeausschnitt ganz annehmbar.



  • Du meinst doch nicht etwa

    std::cin.ignore(std::numeric_limits<streamsize>::max(), '\n');
    std::cin.get();
    

    ? 🙂



  • Hehehehe. Eigentlich wollte ich noch schlafen, schließlich muss ich noch um 6.30Uhr ausm Haus. Aber wenn ich solch eine kompetente und schnell Hilfe bekomme und das Programm dann auch noch läuft, dann kann man einfach nicht schlafen gehen 😃

    Das mit den globalen Variablen ist ein Problem: Ich brauche diese Variablen auch in anderen Funktionen, dann müsste ich also mit Rückgabeparametern oder überall mit globalen Variablen arbeiten.
    Gilt dass int in der for-Schleife auch für mein startwert_daten?



  • cooky451 schrieb:

    Du meinst doch nicht etwa

    std::cin.ignore(std::numeric_limits<streamsize>::max(), '\n');
    std::cin.get();
    

    ? 🙂

    😃 Nicht zu vergessen: #include <limits>. 😃



  • Einstein jr. schrieb:

    Gilt dass int in der for-Schleife auch für mein startwert_daten?

    Wie meinst du das? Das int bezieht sich nur auf x.

    for(int x=1; ... ; ++x) // x ist nun eine lokale Variable, also nur in der for-Schleife sichtbar.
    


  • Gugelmoser schrieb:

    Einstein jr. schrieb:

    Gilt dass int in der for-Schleife auch für mein startwert_daten?

    Wie meinst du das? Das int bezieht sich nur auf x.

    for(int x=1; ... ; ++x) // x ist nun eine lokale Variable, also nur in der for-Schleife sichtbar.
    

    Die Frage war hat sich erledigt. Danke.



  • ist es in diesem fall nicht egal, ob man

    for(int x=1; ... ; ++x) // x ist nun eine lokale Variable, also nur in der for-Schleife sichtbar.
    

    oder

    for(int x=1; ... ; x++) // x ist nun eine lokale Variable, also nur in der for-Schleife sichtbar.
    

    schreibt?



  • ja, an dem erzeugten code wird sich in diesem fall wohl nichts ändern.


Anmelden zum Antworten