datei in variablen auslesen



  • Guten Tag,
    ich hoffe ihr könnt mir bei meinem Problem weiter helfen.

    Und zwar möchte ich ein Programm schreiben, welches aus einer Textdatei die einzelnen Zeilen ausliest und in jede Zeile in eine Varibale schreibt.

    Die Textdatei sieht so aus:
    1
    2
    3
    4
    5

    Bisher bin ich so weit gekommen....ich bitte um Rat. 😕

    #include <conio.h>
    #include <iostream.h>
    #include <stdio.h>

    int main()
    {
    FILE *file_ptr;
    file_ptr = fopen("test.txt", "r");

    if (file_ptr == NULL)
    {
    cout << ("Datei konnte nicht gefunden werden") << endl;
    getch ();
    }

    else
    {
    cout << ("datei: ") << endl;
    }

    getch ();
    return 0;
    }



  • Ich bin schon ein Stück weiter gekommen, so dass ich die einzelnen Zeilen auslesen kann.

    #include <conio.h>
    #include <iostream.h>
    #include <stdio.h>

    int main()
    {

    FILE *file_ptr;
    char zeile[100];

    file_ptr = fopen("test.txt", "r");

    if (file_ptr == NULL)
    {
    cout << ("Datei konnte nicht gefunden werden") << endl;
    getch ();
    }

    else
    {
    fgets (zeile, 99, file_ptr );
    while( ! feof(file_ptr) )
    {
    cout << zeile;
    fgets( zeile, 99, file_ptr );
    }
    }

    getch ();
    return 0;
    }

    Aber das letzte Problem wäre, wie ich die einzelnen Zeilen in Variablen schreiben kann, um die Zahlen nach größe zu sortieren wenn die Textdatei wie folgt aussieht:

    2
    5
    6
    4
    8
    1
    7
    9
    3



  • Hmm man arbeitet unter C++ mit Filestreams und nutzt nicht irgendwelche C-Header:

    #include <fstream> // std::ifstream
    #include <iostream> // std::cout
    #include <string> // std::string, std::getline
    
    int main()
    {
        std::ifstream file_stream("C:\\Myfile.txt");
        std::string temp;
        while (std::getline(file_stream, temp)) std::cout << temp << std::endl;
    }
    

    das gibt dir jede Zeile deiner Datei aus. Was du haben willst geht so:

    #include <fstream> // std::ifstream
    #include <vector> // std::vector
    #include <iterator> // std::istream_iterator
    
    int main()
    {
        std::ifstream file_stream("C:\\Myfile.txt");
        std::vector<unsigned int> data(std::istream_iterator<unsigned int>(file_stream), std::istream_iterator<unsigned int>());
    }
    

    In data stehen nun deine einzellnen Zahlen ...



  • (D)Evil schrieb:

    std::vector<unsigned int> data(std::istream_iterator<unsigned int>(file_stream), std::istream_iterator<unsigned int>());
    

    ➡

    std::vector<unsigned int> data( (std::istream_iterator<unsigned int>(file_stream)) , std::istream_iterator<unsigned int>());
    

    😉


Anmelden zum Antworten