Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] Doppia lettura dell'ultima riga da file

    Come da titolo vorrei sapere che errore commetto nel leggere un file riga per riga e stamparla a video.
    L'errore logico(credo) che faccio è che viene letta due volte l'ultima riga del file.

    Codice:
    codice:
    #include <stdio.h>
    
    int main(void) {
    	FILE *fPtr = fopen("q_esempio.txt", "r");
    
    	if(fPtr == NULL) {
    		printf("Non è stato possibile aprire il file\n");
    		return 0;
    	}
    	while(!feof(fPtr)) {
    		char str[100];
    		fscanf(fPtr, "%s", str);
    		printf("%s\n", str);
    	}
    	return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Il problema è che la variabile EOF è correttamente inizializzata solo dopo la prima volta che la macchina prova a leggere dopo la fine del file stesso. In altri termini, devi sforare una volta per avere EOF. La prima volta che errivi alla fine del file, non hai ancora passato il limite, quindi feof itera una altra volta.
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

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.