c++ Liest nich

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • c++ Liest nich

    C-Quellcode

    1. #include <iostream> // std::cout
    2. #include <fstream>
    3. #include <string>
    4. using namespace std;
    5. ifstream datei;
    6. int main () {
    7. std::fstream fs;
    8. fs.open ("/Users/FOR/Desktop/Xcode/auslesetest/auslesetest/toxi.txt");
    9. if (fs.is_open())
    10. {
    11. fs << "xxx xxxipsum";
    12. char einlesen[6];
    13. datei.getline(einlesen,6);
    14. std::cout<<einlesen<<"tax \n";
    15. std::cout << "Operation successfully performed\n";
    16. fs.close();
    17. }
    18. else
    19. {
    20. std::cout << "Error opening this file";
    21. }
    22. return 0;
    23. }
    Alles anzeigen
    Ich habe den Code etwas modifiziert und möchte nun, daß er das, was er in den die Datei schreibt (das funktioniert), auch wieder ausliest und auf der Konsole ausgibt. Das tut er nicht. Kann mir jemand erklären, warum er es nicht tut, und was ich falsch gemacht habe.
  • Krab schrieb:

    C-Quellcode

    1. #include <iostream> // std::cout
    2. #include <fstream>
    3. #include <string>
    4. using namespace std;
    5. ifstream datei;
    6. int main () {
    7. std::fstream fs;
    8. fs.open ("/Users/FOR/Desktop/Xcode/auslesetest/auslesetest/toxi.txt");
    9. if (fs.is_open())
    10. {
    11. fs << "xxx xxxipsum";
    12. char einlesen[6];
    13. datei.getline(einlesen,6);
    14. std::cout<<einlesen<<"tax \n";
    15. std::cout << "Operation successfully performed\n";
    16. fs.close();
    17. }
    18. else
    19. {
    20. std::cout << "Error opening this file";
    21. }
    22. return 0;
    23. }
    Alles anzeigen
    Ich habe den Code etwas modifiziert und möchte nun, daß er das, was er in den die Datei schreibt (das funktioniert), auch wieder ausliest und auf der Konsole ausgibt. Das tut er nicht. Kann mir jemand erklären, warum er es nicht tut, und was ich falsch gemacht habe.
    Wieso jetzt einen neuen Thread?

    Was genau geht denn nicht? Kommt eine Fehlermeldung?
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io
  • Wieso jetzt einen neuen Thread? schrieb:

    weil ich denke, das alte Thema (Dateisystem in Xcode) ist abgeschlossen



    Nein, keine Fehlermeldung, er liest wahrscheinlich nicht aus aus der Datei die ersten 6 Zeichen und gibt sie nicht aus der Konsole, wie in Zeile 3 verlangt, aus. Dort erscheint blos das Kontroll-tax von Zeile 3.

    Mein Denk-Fehler müsste hier, Zeile 2, liegen

    1. char einlesen[6];
    2. datei.getline(einlesen,6);
    3. std::cout<<einlesen<<"tax \n";

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Krab ()

  • "datei" wird nirgendwo geöffnet! was soll die globale variable überhaupt?
    warum verwendest du nicht fs zum lesen? du musst dann aber wahrscheinlich die lese-/schreib-position wieder auf anfang setzen.
    was macht es aber für einen sinn daten auszulesen die man grad eben erst in der selben funktion geschrieben hat... man hat die daten ja bereits...
  • gritsch schrieb:

    "datei" wird nirgendwo geöffnet! Was soll die globale Variable überhaupt? Das ist, wofern ich richtig unterrichtet, eine Klasse

    Warum verwendest du nicht fs zum Lesen? Du musst dann aber wahrscheinlich die Lese-/schreib-position wieder auf Anfang setzen. Ne, er soll aus der oben geöffneten Datei toxi.txt lesen..... wie sähe das denn aus?

    Was macht es aber für einen Sinn Daten auszulesen die man grad eben erst in der selben Funktion geschrieben hat... man hat die Daten ja bereits...bin am Üben!
  • C-Quellcode

    1. #include <iostream> // std::cout
    2. #include <fstream>
    3. #include <string>
    4. using namespace std;
    5. int main () {
    6. std::fstream fs;
    7. fs.open ("/Users/FOR/Desktop/Xcode/auslesetest/auslesetest/toxi.txt");
    8. if (fs.is_open())
    9. {
    10. fs << "01234567ipmsuxum";
    11. fs.seekp(7, ios_base::beg);
    12. char einlesen[8];
    13. fs.getline(einlesen,8);
    14. std::cout<<einlesen<<"Kontrolltax\n";
    15. std::cout << "Operation successfully performed\n";
    16. fs.close();
    17. }
    18. else
    19. {
    20. std::cout << "Error opening this file";
    21. }
    22. return 0;
    23. }
    Alles anzeigen
    Es klappt, ich frag mich nur, warum er nicht 8 Stellen einliest, sondern nur 7 ....
    Wie ich das jetzt verstehe, ist fs nur eine Variable in der die Datei Toxi.txt samt Pfad verborgen ist.
    Warum muß eigentlich das std:: dort stehen? Früher ging es ohne ....

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Krab ()

  • Hallelujah und Danke,

    morgen mach ich Schreiben und Lesen aus zwei Programmen in ein und aus einunderselben Datei, wenn ich hoffentlich dazukomme....

    Man kann ja wohl hoffentlich auch mehrere Dateien offen haben .... und dann so randommäßig hin und her schieben die Daten ....

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Krab ()