datei: 1.Zeile String, dann doubles



  • Hallo,
    ich habe eine ASCII Datei, die in der ersten Zeile einen String stehen hat und in den folgenden Fließkommawerte. Steht in der ersten Zeile nur ein char, funktioniert

    char ersteZeile; ifstream inputFile("filename");
      inputFile >> ersteZeile; cout << ersteZeile;
    

    bestens. Anschließend fahre ich problemlos mit dem Auslesen der folgenden Zahlenwerte fort, indem ich meinen pointer um 1 erhöhe.
    Steht in der ersten Zeile allerdings ein String, versagt

    char *ersteZeile; ifstream inputFile("filename");
      inputFile >> *ersteZeile; cout << *ersteZeile;
    

    leider völlig. Woran liegt das? Wie kann ich die erste Zeile komplett einlesen und einem String zuordnen?
    mfg, bender



  • Woran liegt das?

    Das liegt daran, dass es sich hier um einen Zeiger handelt, für den du erst Speicher reservieren musst, bevor du ihn benutzen kannst

    Wie kann ich die erste Zeile komplett einlesen und einem String zuordnen?

    Verwende einfach std::string

    #include <iostream>
      #include <fstream>
      #include <string>
      using namespace std;  // damit du nicht immer "std::string" schreiben musst
    
      int main(int argc, char *argv[]) {
        string strErsteZeile;
        ifstream inputFile("filename"),
        inputFile >> strErsteZeile;
        cout << strErsteZeile;
        // ... alles weitere lesen ...
        inputFile.close();
      }
    

    Mfg, smasher1985


Log in to reply