fscanf



  • Hallo Zusammen!

    Bin ein neueinsteiger in c++ und hätte da mal eine frage.

    Wenn ich eine Datei habe, in der folgendes steht;

    1 2 3 4

    jetzt will ich aus dieser datei auslesen, und die gleichen zahl wie sie hier stehen in eine neue datei schreiben.

    Wenn ich fscanf verwende, dann muss ich eine for-Schleife verwenden, da ein fscanf nur bis zum ersten leerzeichen einlist, stimmt das so?

    Woher weis aber das Programm, das nach dem leerzeichen noch was kommt?

    Ich hoffe ihr könnt mir helfen!

    Danke



  • Wenn du wirklich C++ programmieren willst, dann solltest du dir mal die Streams ansehen (<iostream>, <fstream>, ...).

    Willst du die Daten nur kopieren oder willst du sie auch im Programm auswerten?
    Bei ersterem könntest du einfach die ganze Zeile in einen String einlesen und wieder in die andere Datei kopieren.

    Verwende beim Lernen von C++ möglichst keine C-lastigen Funktionen (ansonsten hast du ein schlechtes Tutorial bzw. Buch). Vermeide also Funktionen wie printf, scanf, und alle entsprechenden Datei-Funktionen (FILE).



  • fscanf ist kein C++. Das ist C.

    Das hier ist C++: (fstream)
    http://www.cppreference.com/cppio/examples.html

    Dort dürftest du auch das finden, dass du suchst.



  • ansonsten:

    if (fscanf(file, "%i %i %i %i", &int1, &int2, &int3, &int4) != 4){
      // ERROR ...
    }
    

Anmelden zum Antworten