File di testo, prime armi!

di il
2 risposte

File di testo, prime armi!

Buona sera ,
ho intrapreso per la prima volta i file e sto provando a fare questo esercizio:
/*Scrivere un programma che converta da un file di testo i caratteri minuscoli in maiuscoli*/
Io ho provato a farlo ma purtroppo non riesco a trovare l'errore, potreste aiutarmi?
int main(){
FILE *originale;
char s[200];
char *res;

originale=fopen("Prova.txt", "r");


 if(originale==NULL){
  printf("\nErrore nell'apertura!\n\n");
 return -1;
 }
 else{
   for(;(res=fgets(s, 200, originale))!=NULL; res++){
     if(*res>='a' && *res<='z')
      *res=(*res-'a')+'A';
    }
   }

fclose(originale);
printf("%s\n\n", s);

system("pause");
return 0;
}

2 Risposte

  • Re: File di testo, prime armi!

    Nel tuo codice apri il file in modalità di lettura,
    leggi un'intera riga del file nel ciclo for con la fges e ne memorizzi il contenuto nella stringa s,
    dopo ciò verifichi se il primo carattere di questa stringa è minuscola, se lo è la converti.

    Non stampi nulla per vedere i risultati. Questi devono essere riscritti su file? Se è così devi aprire un file in lettura e scrivere dopo aver convertito correttamente tutta la stringa.
    Se il file dev'essere lo stesso di input allora le cose cambiano, hai due strade:
    1) Apri un secondo file che poi rinomini
    2) Memorizzi i dati in memoria elabori e riscrivi sullo stesso file

    Concentrati sulla conversione della stessa stringa per prima cosa, poi correggi il resto.
  • Re: File di testo, prime armi!

    SVNiko ha scritto:


    Concentrati sulla conversione della stessa stringa per prima cosa, poi correggi il resto.
    Ho seguito il tuo consiglio, ho modificato gran parte del programma, inoltre ho creato un altro file aprendolo in scrittura e finalmente sono giunta alla soluzione corretta ! Grazie per i suggerimenti...
Devi accedere o registrarti per scrivere nel forum
2 risposte