Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558

    [C++] Leggere file VERAMENTE byte per byte

    Questo problema mi sta facendo impazzire.
    Ho un file di testo. Lo apro con fstream.open().
    Ora lo voglio leggere byte per byte in un while:
    char c[1];
    while (!file.eof()) {
    [leggi byte e mettilo in c[0]]
    [fai cose]
    }
    Il problema è che quando nel file di testo ho degli a-capo, cioè due byte 0x0D 0x0A, questi vengono letti come byte singolo '\n'. Io voglio che vengano invece letti singolarmente! Prima 0x0D, poi 0x0A!!!

    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Devi aprire il file in binario ... come hai utilizzato la open?

    P.S. Se devi dichiarare un char, scrivi

    char c;

    ... non serve un array ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Sì, per il char ok, arrivo da una modifica precedente in cui leggevo 10 per volta, quindi senza pensarci su ho ridimensionato l'array a 1
    La open la uso così:
    file.open(path, fstream::in);
    Ho già provato con fstream::binary, ma non mi apre il file...

  4. #4
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Ok, ho capito, devo usare combinandoli con un OR sia ::in che ::binary...
    Arrivo dal C con il vecchio fopen, perciò ste cose non le avevo mai viste prima...
    Sorry e grazie mille!

  5. #5
    Be', in C c'è comunque l'analogo
    codice:
    fopen("nomefile.ext","rb");
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.