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

    [C] il carattere ˙

    Ciao.
    Perchè se lancio un codice come questo :

    codice:
    int k=0;
    int j=0;
    FILE* prova;
    prova=fopen("prova.txt","r");
    
    FILE *provetta;
    provetta=fopen("provetta.js","w");
    
    fprintf(provetta,"var link_list = new Array();\n\n");
    
    
             do {
    
    			if(k==0) {          //controlla se sono all'inizio del link
    				fprintf(provetta,"link_list[%d]=\"",j+1);
    			}
    
    			c=fgetc(prova);
    
    			if(c!='\n') {
    				k++;
    				fputc(c,provetta);
    			}
    
    			else {
    				k=0;
    				j++;
    				fputc('\"',provetta);
    				fputc(';',provetta);
    				fputc('\n',provetta);
    			}
    
    		} while(c!=EOF);
    
    		fputc('\"',provetta);
    		fputc(';',provetta);
    
    		fclose(prova);
    		fclose(provetta);
    su un file vuoto (oppure su una lista di link con una newline finale) la putc mi mette anche il carattere ˙ ???
    Io non lo voglio scrivere quel carattere eppure me lo mette sempre accidenti.
    Ovviamente ho provato a fare il controllo c!='˙' e funziona, ma non capisco da dove legge quel carattere diabolico...

    Grazie!
    F.
    rm -f stupidity

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    156
    il motivo potrebbe essere nel controllo di fine file fatto DOPO aver scritto il carattere con putc.
    prova a ristrutturare il ciclo in modo che effettui il controllo su EOF prima di scrivere.

  3. #3
    Sì in effetti è bastato aggiungere un controllo su c dopo che è stato letto per risolvere il problema.
    Grazie mille
    rm -f stupidity

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.