\n in textfiles



  • ich hab in einer textdatei folgendes stehen

    .
    .
    .
    gb Guest Book \n gb Great Britain
    .
    .

    der code:

    char bla[1000]
    .
    .
    fgets(bla,100,dateio);
    .
    .
    .
    cout << bla << endl;
    .
    .
    .

    das prob ist das kein zeilenumbruch kommt.
    habs auch schon mit \\n '\n' "\n" versucht.
    was muss ich also schreiben um einen zeilenumbruch zu erzeugen??

    thx



  • Hallo

    unter Windows die Kombination der beiden Zeichen '\r' und '\n'

    bis bald
    akari



  • schade funzt auch nicht:
    vllt liegts an meinem code:

    while(go == 1)
    {
    if(menue == 1)
    {
    found = 2;
    cout << "What abb are you looking for?" << endl;
    cin >> search;
    size = strlen(search);
    reader = fopen("c://abbs.txt","r");
    while(feof(reader) == 0 && found == 2)
    {
    fgets(abb,1000,reader);

    if(strncmp(abb,search,size) == 0)
    {
    cout << abb << endl;
    found = 1;

    cout <<"[1] Look for another abbrevation!"<< endl; //
    cout <<"[2] Define an abbrevation!"<< endl; //
    cout <<"[3] Show complete abb-list!"<< endl; // menue v2
    cout <<"[4] Exit Abbiator!"<< endl; //
    cin >> menue; //
    }

    }
    fclose(reader);

    oder mach ma bitte ein beispiel wie du die kombinierst

    so oder?: \r\n
    '\r\n' funzt auch nich..



  • Hallo

    du darfst die beiden Zeichen ja auch nicht als Klartext in die Datei schreiben, sondenr als Steuerzeichen.. .eben als Enter.

    bis bald
    akari



  • Aber es muss in einer zeile stehen, sonst funzt die suchfunktion nicht mehr.

    also kann man in c++ nicht erreichen dass eine zeile in txt-dateien als 2(also mit zeilenumbruch) gelesen wird???????

    bei php könnt ich ja <br> schreiben, warum geht das nicht in c++?



  • Hallo

    - du kannst dir für die 'zeileninternen Zeilen' zum Beispiel ein anderes Steuerzeichen definieren, mit dem du die 'zeileninternen Zeichenumbrüche' markierst.

    - du liest die Zeilen weiterhin einzeln ein, und hängst zusammengehörende Zeilen wieder im Programm mit gewohnten Zeilenumbruch zusammen.

    - du nimmst zum Trennen der echten Zeilen in der Datei ein anderes Steuerzeichen, und trennst die 'internen Zeilen' wieder mit dem gewohnten.

    bis bald
    akari



  • also erstmal akari danke für deine mühe,
    aber weißt du, ich bin nich nocht son c++GURU, und bin jetzt nicht ganz klar gekommen mit dem was du gesagt hast.
    könntest du(oder jemand der das checkt) bei gelegenheit vllt ein kleines beispielprog schreiben? thx!



  • std::ifstream f("abbs.txt", std::ios::in)
    std::string line;
    while (std::getline(line, f)) {
      std::size_type pos;
      while ((pos = line.find("\\n")) != std::string::npos)
        line.replace(pos, 2, "\n");
      std::cout << line << std::endl;
    }
    

Anmelden zum Antworten