Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568

    [C] Ancora problemi con alcuni esercizi (nuovi eh)

    Ho ancora problemi con questi due esercizi

    Esericizio1: Dovrebbe copiare due file ma me li copia mettendo caratteri che non centrano nulla.
    codice:
    #include <stdio.h>
    
    int file_exist(char *filename);
    
    FILE *fp,*fp2;
    char filename[80],filename2[80];
    int ch;
    
    int main(){
    
    puts("Inserisci il nome del file da copiare:");
    gets(filename);
    puts("Inserisci il nome del file di destinazione:");
    gets(filename2);
    
    if (!file_exist(filename)){
    fprintf(stderr,"Il file non esiste impossibile copiarlo. Premere un tasto per uscire!");
    getch();
    }
    
    if ((fp=fopen(filename,"rb"))==NULL){
    fprintf(stderr,"ERRORE --> Il file non esiste o Š stato impossibile aprirlo");
    exit(1);
    }
    
    if((fp2=fopen(filename2,"wb"))==NULL)
    fprintf(stderr,"ERRORE GENERICO");
    
    while(!feof(fp)){
    ch=fgetc(fp);
    if (!(ch>41&&ch<90))
    fputc(ch-32,fp2);
    else
    fputc(ch,fp2);
    }
    fcloseall();
    }
    
    int file_exist(char *filename){
    if (fopen(filename,"r")!=NULL){
    fclose(fp);
    return 1;
    }
    else
    return 0;
    }
    Esercizio2: Quesro mi scrive i valori esatti per i primi caratteri quelli che però visualizza a scermo sno gli ultimi e mi visualizza 0 0
    codice:
    #include <stdio.h>
    
    unsigned char buf[128],filename[80];
    FILE *fp;
    int ctr;
    
    int main(){
    printf("Inserisci il nome del file: ");
    gets(filename);
    if ((fp=fopen(filename,"rb"))==NULL){
    fprintf(stderr,"ERRORE di apertura file.");
    fprintf(stderr,"\nUno o pi— utenti deficenti hanno scritto il nome di un file inesistente.");
    }
    
    while(!feof(fp)){
    fgets(buf,128,fp);
    for(ctr=0;ctr<128;ctr++)
    printf("\n%d\t%X",buf[ctr],buf[ctr]);
    getch();
    }
    }
    Grazie a tutti per l'aiuto

  2. #2

    Esercizio 1:

    Esercizio numero 1:
    codice:
    #include <stdio.h>
    
    int copia (char *, char *);
    
    int main (void) {
            copia ("pippo", "pluto");
            return (0);
    }
    
    int copia (char * s, char * t) {
            char buf[255];
            FILE * f1, * f2;
            if ((f1 = fopen (s, "r")) == NULL)
                    return (0);
            f2 = fopen (t, "w");
            while ((fgets (buf, sizeof (buf), f1)) != NULL)
                    fputs (buf, f2);
            fclose (f1);
            fclose (f2);
            return (1);
    }

  3. #3
    Esercizio 2 (da quanto ho capito):

    codice:
    #include <stdio.h>
    
    int view (char *);
    
    int main (void) {
            if (! (view ("pippo.txt")))
                    fprintf (stderr, "Il file non è stato aperto, Mannaggia! \n");
            return (0);
    }
    
    int view (char * s) {
            char ch;
            FILE * fp;
            if ((fp = fopen (s, "r")) == NULL)
                    return (0);
            while (! (feof (fp))) {
                    ch = fgetc (fp);
                    fprintf (stdout, "%d \t %X \n", ch, ch);
            }
            return (1);
    }
    Saluti

  4. #4
    Mi sono dimenticato di aggiungere:
    codice:
    fclose (fp);
    Prima di return (1);

    Ciao!

  5. #5
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Mi ero dimenticato di scrivere i limiti dei programmi

    Esercizio 2:
    Deve prendere i caratteri in blocchi 128 byte per questo ho usato fgets

    Esercizio 1:
    Quando copia il file deve cambiare i caratteri da minuscoli a maiuscoli.
    Perchè non vanno?
    Ciao

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.