Leerzeichen bei fopen umgehen...



  • Moin.....

    Folgendes Problem...

    ich lese eine Textdatei ein, in der ein Pfad steht. Dieser enthält aber leerzeichen und wird daher nur bis zum ersten Leerzeichen eingelesen.... Wisst ihr wie ich das ändern kann??

    öffnen tu ich mit fopen und einlesen mit fgets.........
    Wäre auch gut wenn das so bleiben könnte weil da schon relativ viel aufbauend drauf weiter programmiert ist....

    thx & cya



  • Sicher, das du nicht einfach nur einen zu kleinen Puffer benutzt, der halt zufällig beim Leerzeichen endet? Das hier finde ich zu fgets:

    Get a string from a stream.
      Reads characters from stream and stores them in string until (num -1) characters have been read or a newline or EOF character is reached, whichever comes first.
      A newline character ends reading but is considered a valid character and included in the new string.
      A null character is always appended at the end of the resulting string.
    

    Quelle: http://www.cplusplus.com/ref/cstdio/fgets.html

    Auf gut deutsch:
    fgets kriegt eine Grösse übergeben, bis zu der es maximal lesen darf. Es bricht ab, wenn entweder Grösse-1 Zeichen gelesen wurden, ein Zeilenwechsel oder das Dateiende erreicht sind (wobei Zeilenwechsel im String bleiben).

    Es bricht eigentlich NICHT bei Leerzeichen ab - das Leerzeichen sollte also nicht die Ursache sein. Ich vermute (wie erwähnt) das Leerzeichen ist zufällig das erste Zeichen, nachdem die Grösse des Puffers erreicht ist.



  • Hallo

    wenn du diese C-Funktionen weiter benutzen willst, must du dich ins Ansi-C-Forum verschieben lassen.

    Wenn du C++ programmieren willst, dann schau dir den Thread Ströme und Dateien in der C++ FAQ an.

    bis bald
    akari


Anmelden zum Antworten