sono approdato a questa nuova versione dello script...
esegue tutte le operazioni correttamente, ma prima di chiudersi da errore e si termina e non riesco a capire il motivo...
ancora grazie![]()
codice:#include <stdio.h> int main (void){ long lbuffer = 60000; //determina sia il buffer di lettura che la lunghezza della chiave char progkey = 100; long xmega = 1048576/lbuffer; printf("buffer impostato a %d bytes\n",lbuffer); char nomefile[20]; printf("nome del file da crittografare:"); scanf("%s",nomefile); printf("%s!\n",nomefile); char nomechiave[20]; printf("nome del file chiave:"); scanf("%s",nomechiave); printf("%s!\n",nomechiave); //preparazione della chiave char *kbuf; kbuf = new char [lbuffer]; char *chiave; chiave = new char [lbuffer]; FILE *keyfile; if ((keyfile = fopen(nomechiave, "rb"))) { size_t a; long x=0; while( a = fread( kbuf, 1, lbuffer, keyfile) ) { x=x+lbuffer; /* ciclo di creazione chiave */ int y; for(y=0;y<=a;y++) chiave[y]=chiave[y]+kbuf[y]; if((x%xmega)==0) //informazioni sullo stato del processo printf("creazione chiave: %dMb analizzati\n",(x/1048576)); } fclose(keyfile); } printf("\n\nchiave creata!!!!!\n\n"); //inizio processo per la scrittura del nuovo file char *buf; buf = new char [lbuffer]; FILE *f, *f_out; if ((f = fopen(nomefile, "rb")) && (f_out = fopen("cript.crp", "wb"))) { size_t b; long x=0; while( b = fread( buf, 1, lbuffer, f) ) { x=x+lbuffer; /* ciclo di cifratura */ int y; for(y=0;y<=b;y++) buf[y]=buf[y]+chiave[y]+progkey; if((x%xmega)==0) //informazioni sullo stato del processo printf("%dMb\n",(x/1048576)); fwrite( buf, 1, b, f_out); } fclose(f); fclose(f_out); } return 0; }

Rispondi quotando