Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - problemino in c
Forum - C/C++ - problemino in c

Avatar
djleo (Member)
Pro


Messaggi: 72
Iscritto: 07/03/2010

Segnala al moderatore
Postato alle 16:51
Sabato, 10/04/2010
Il professore ci ha dato un programma da fare e non riesco a fare una cosa.
Mi spiego il programma da fare é:
Scrivere un programma in C che dato un file input.txt stampi in un file output.txt la lunghezza delle parole.
es:
input.txt
Ciao come stai
tutto bene

output.txt
4 4 4
5 4

Il mio problema è che il risultato me lo da su una riga.
posto il sorgente.
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define input "input.txt"
  5. #define output "output.txt"
  6.  
  7. FILE *fin;
  8. FILE *fout;
  9.  
  10. char str[5];
  11.  
  12. int main(){
  13.     fin=fopen(input,"r");
  14.     if(fin==NULL){
  15.         printf("Impossibile trovare file\n");
  16.         exit(1);
  17.         system("pause");
  18.     }
  19.     fout=fopen(output,"w");
  20.     do{
  21.        do{
  22.           fscanf(fin,"%s",&str);
  23.           fprintf(fout,"%d ",strlen(str));
  24.          }while(str[strlen(str)]=='\n');
  25.         fputc('\n',fout);
  26.       }while(!feof(fin));
  27.     fclose(fin);
  28.     fclose(fout);
  29.     system("notepad output.txt");
  30. }



vi ringrazzio in anticipo per l'aiuto.:):):)

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:19
Sabato, 10/04/2010
prova cosi
Codice sorgente - presumibilmente C++

  1. #include  <stdio.h>
  2. #include <string.h>
  3.  
  4. #define input "input.txt"
  5. #define output "output.txt"
  6.  
  7. FILE *fin;
  8. FILE *fout;
  9.  
  10. char str[5];
  11.  
  12. int main(){
  13.  
  14.     fin=fopen(input,"r");
  15.     if(fin==NULL){
  16.         printf("Impossibile trovare file\n");
  17.         exit(1);
  18.         system("pause");
  19.     }
  20.     fout=fopen(output,"w");
  21.     do{
  22.        do{
  23.           fscanf(fin,"%s",&str);
  24.           fprintf(fout,"%d ",strlen(str));
  25.          }while(str[strlen(str)]=='\n');
  26.            if((getc(fin)) == '\n')
  27.                fputc('\n',fout);
  28.       }while(!feof(fin));
  29.     fclose(fin);
  30.     fclose(fout);
  31.     system("notepad output.txt");
  32. }


PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 19:00
Sabato, 10/04/2010
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ctype.h>
  4.  
  5. #define input "input.txt"
  6. #define output "output.txt"
  7.  
  8. FILE *fin;
  9. FILE *fout;
  10.  
  11. char str[50];
  12.  
  13. int main()
  14. {
  15.         int c=0, i;
  16.     fin=fopen(input,"r");
  17.     if(fin==NULL)
  18.     {
  19.         printf("Impossibile trovare file\n");
  20.         return 0;
  21.         getchar();
  22.     }
  23.     fout=fopen(output,"w");
  24.  
  25.     while(fgets(str,sizeof(str),fin)!=NULL)
  26.     {
  27.         for(i=0; i<strlen(str); i++)
  28.         {
  29.                 if(isalnum(str[i]))c++;
  30.                 else
  31.                 {
  32.                         fprintf(fout,"%d ", c);
  33.                         c=0;
  34.                 }
  35.         }
  36.         fprintf(fout, "\n");
  37.     }
  38.     fclose(fin);
  39.     fclose(fout);
  40.     printf("Operazione completata, premere un tasto per uscire.");
  41.     getchar();
  42.     return 0;
  43. }



Questo codice funziona, confrontalo con il tuo, e scroprirai gli errori che avevi commesso! Buon lavoro!

Ultima modifica effettuata da Matthew il 10/04/2010 alle 19:01
PM Quote
Avatar
djleo (Member)
Pro


Messaggi: 72
Iscritto: 07/03/2010

Segnala al moderatore
Postato alle 13:32
Domenica, 11/04/2010
Grazie dei sugerimenti

PM Quote