Eine Zeile aus Datei überschreiben und eine hinzufügen



  • Hi,

    kann mir wer erläutern wie ich in einer Datei eine Zeile überschreibe und eine Zeile dazwischen schieben kann?

    Nur die Befehle, wäre echt klasse.
    MfG Gustl


  • Administrator

    #include <string>
    #include <vector>
    #include <fstream>
    #include <iterator>
    #include <algorithm>
    
    struct TextLine
    {
      std::string value;
    };
    
    std::istream& operator >>(std::istream& input, TextLine& textLine)
    {
      return std::getline(input, textLine.value);
    }
    
    std::ostream& operator <<(std::ostream& output, TextLine const& textLine)
    {
      return output << textLine.value << std::endl;
    }
    
    int main()
    {
      std::vector<TextLine> textLines;
      std::ifstream input("text.txt");
    
      std::copy(std::istream_iterator<TextLine>(input),
                std::istream_iterator<TextLine>(),
                std::back_inserter(textLines));
    
      // x sei irgendein gültiger Index, bzw. Zeile.
      textLines[x].value = "Neuer wert, also Linie überschreiben!";
    
      TextLine NewLine = { "Zeile am Anfang einfügen." };
      textLines.insert(textLines.begin(), NewLine);
    
      std::ofstream output("NewText.txt");
    
      std::copy(textLines.begin(),
                textLines.end(),
                std::ostream_iterator<TextLine>(output));
    
      return 0;
    }
    

    Alle verwendeten Klassen und co, kannst du hier nachschauen:
    http://www.cplusplus.com/reference/

    Der Code ist ungetestet, sollte aber wohl so, oder so ähnlich, funktionieren.

    Grüssli

    PS: Befehle gibt es eigentlich nicht, daher war mir nicht ganz klar, was du mit dem "nur" gemeint hast.


Anmelden zum Antworten