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