Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    26

    [C] problema conta linee da file

    salve a tutti; ho un esercizio che mi chiede di scrivere un testo su file, poi visualizzarlo carattere per carattere, e poi contare le linee del file che cominciano per "a".
    Ho fatto tutto, ma trovo difficoltà in quest'ultimo punto. Come posso farlo? vi posto quello che ho provato a fare:
    (la parte in rosso è quella che non mi esce, che sarà sicuramente sbagliata)

    codice:
    #include <stdio.h>
    
    int main ()
    { FILE *fp ;
      char st[50];
      char c;
      int i;
      
      
      printf("Inserire testo: ");
      scanf("%s", &st);
      
      if ((fp=fopen("gna.txt", "w"))==NULL) {printf("errore nell'apertura");}
      else {
           fprintf(fp, "%s", st); 
            fclose(fp);}
        
      if ((fp=fopen("gnam.txt", "r"))==NULL) {printf("errore nell'apertura");}     
        else {    
             c=fgetc(fp);
           while (!feof(fp)) {
                 printf ("%c", c);
                 c=fgetc(fp);
                  }
                  fclose(fp);}
                  
      
        if ((fp=fopen("gnam.txt", "r"))==NULL) {printf("errore nell'apertura");}     
        else {  i=0;            
                c=fgetc(fp);
                while (!feof(fp) && (c!= '\n')) {
                      if (c='a')  i++; 
                      printf("%d", i);}
                      fclose(fp);}    
                      
                  
        
                
      
      
      system ("PAUSE");
      return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Il confronto con la if si fa con

    ==

    e non con =
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    26
    giusto..ma in ogni caso non funziona..

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Certo ... se controlli, nel ciclo non leggi mai dal file ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    codice:
    if ((fp=fopen("gnam.txt", "r"))==NULL) {printf("errore nell'apertura");}     
        else {  i=0;            
                c=fgetc(fp);
                while (!feof(fp) && (c!= '\n')) {
                      if (c='a')  i++; 
                      printf("%d", i);}
                      fclose(fp);}
    innanzi tutto direi proprio che nel cilco non rileggi mai c quindi, ti crea problemi di sicuro perchè testi sempre la stessa variabile!! infine come dice oregon l'if va testato con ==...poi infine ho provato a fare una soluzione un pò rudimentale...prova se va bene...la posto qua sotto!

    codice:
    if ((fp=fopen("gnam.txt", "r"))==NULL) {printf("errore nell'apertura");}     
        else {  i=0;            
                c=fgetc(fp);
                while ( !feof(fp) ) {
                      if ( f == 1 && c == 'a' ) i++; 
                      f=0;
                      if ( c == '\n' ) f = 1;
                      c=fgetc(fp);
                }    
                fclose(fp);
        printf("\n%d\n", i);                               
        }
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

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