text datei einlesen und zeile für zeile abarbeiten??



  • hiho,
    ich bin ganz verzweifelt :(.
    Ich will, das mein Programm 2 Textdateien nacheinander Zeile für Zeile abarbeitet. Zum Beispiel:
    Ich habe zwei textdateien:
    A und B
    in A sind 5 zeilen
    1ste Zeile: lol
    2te Zeile : lol1
    3te Zeil : GZ
    4te Zeile : KP
    5te Zeile Smile
    jetzt will ich, das des so aussieht ob ich sie eingegeben hätte ich meiner Konsole:

    #include <iostream>
    
    int main()
    {
    cout << "Es werden per zufall 5 Abkürzung generiert!" << endl;
    
    system("PAUSE")
    }
    

    jetzt will ich das es da eingegeben wird. wie mache ich das nun.
    ich muss ja 1x die txt datei öffnen
    und dann von oben nach unten laufen lassen mit dem curser.
    Bitte helft mir 😞



  • Rede bitte deutsch und mit Satzzeichen. Willst du, dass die Datei zeilenweise in die Konsole ausgegeben wird?

    std::ifstream is("A.dat", ios::binary);
    if(!is)
       throw std::runtime_error("Konnte A.dat nicht oeffnen!");
    std::istream_iterator<char> iter(is, '\n'), eof;
    std::copy(iter, eof, std::ostream_iterator<char>(std::cout, '\n'));
    


  • Okay habe hier shcon ein Code gefunden ^^

    #include <iostream>
    #include <string>
    #include <cstdlib>
    #include <conio.h>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    
        cout << "Es werden 5 Kürzel Generiert!" << endl; 
    
        {
        char     filename[128];
        ifstream file;
        char     zeile[1024];
    
        // Dateinamen einlesen
        cout << "Dateinamen eingeben: " << flush;
        cin.getline(filename, 127);
    
        // Datei öffnen
        file.open(filename, ios::in);
    
        if (file.good())
        {
            // Wenn die Datei geoeffnet werden konnte...
    
            // An den Anfang der Datei springen
            file.seekg(0L, ios::beg);
    
            while (! file.eof())
            {
                // Die Datei zeilenweise auslesen
                file.getline(zeile, 1024);
                cout << zeile << endl;
            }
        }
        else
        {
            // Wenn die Datei nicht geoeffnet werden konnte,
            // aus welchen Gruenden auch immer...
            cout << "Datei nicht gefunden." << endl;
            }
            }
    
        getch();
        system("pause");
    }
    

    nur wie mache ich es jetzt, das der benutzer des Programms nicht die namen der Zwei TextDateien eingeben muss. also A.txt ud B.txt?
    und da bekomme ich auch immer ein fehler:
    23 C:\Dokumente und Einstellungen\Oliver\Desktop\C++ Programme\TS Hack\TS Hack.cpp aggregate `std::ifstream file' has incomplete type and cannot be defined
    was habe ich falsch gemacht??



  • Abgesehen davon, der der Code oben von mir wesentlich kürzer das macht, was du willst, kommt hier mein Rat:
    Bevor du noch irgendwelche Fragen stellst, lern bitte erst mal C++. Es bringt nichts, dir hier jetzt zu helfen, wenn du die untersten Grundlagen von C++ nicht beherrschst. Nimm dein Buch und ließ das Kapitel noch mal. Wenn es dann immernoch Probleme geben sollte, kannst du gerne Fragen. Deine Eigeninitative hier geht aber gegen 0.




Anmelden zum Antworten