Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C] Carattere ˙

  1. #1

    [C] Carattere ˙

    Ciao, sto facendo un programmino in C che legga carattere per carattere il contenuto di un file...
    codice:
    //...
    fi = fopen (filename, "r");
    
    while ( ! feof ( fi ) ) {
      carattere = fgetc ( fi );
      printf ("Carattere trovato: \"%c\". (codice ascii=%i)\n", carattere, (int) carattere);
    }
    //...
    Il problema è che dopo aver letto tutti i caratteri del file, legge una "˙".
    Questo è l'output che ottengo:
    codice:
    Carattere trovato: "˙". (codice ascii=-1)
    Credo che sia un carattere che segnala la fine del file... Ma allora perchè " ! feof ( fi )" non restituisce FALSE?
    Come faccio per evitare di avere quell'ultimo carattere?

    Grazie
    PuffolottO

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Con il tuo codice l'EOF prima lo legge lo stampa e solo DOPO il while successivo ritorna FALSE

  3. #3
    Originariamente inviato da rsdpzed
    Con il tuo codice l'EOF prima lo legge lo stampa e solo DOPO il while successivo ritorna FALSE
    Mmhhh... Prima stampa il carattere di fine file e poi dice che è finito?
    Come faccio allora per evitare quel carattere? Potrei mettere prima il printf di
    ("Carattere trovato: \"%c\". (codice ascii=%i)\n", carattere, (int) carattere);
    e poi la lettura del carattere, ma in questo modo alla prima esecuzione del ciclo carattere sarà indefinito...

  4. #4
    Anch'io avevo il tuo stesso problema per lo stesso programma che devi fare tu...

    Il problema sta nel fatto che il file per leggerlo correttamente non basta aprirlo in lettura, ma devi aprirlo in lettura binaria in questo modo: "rb"

    Infatti la modalità di lettura normale è usata per i file di testo mentre se vuoi copiare carattere per carattere devi fare così..

    ciao ciao
    "Penso che nel mondo ci sia mercato per quattro o cinque computer"... Thomas Watson, presidente della IBM, 1943

  5. #5
    Grazie mille
    Adesso funziona alla perfezione!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.