Quote:
Originariamente inviato da Unrue
La stampa a video rallenta un casino, costringe il programma a state dietro allo standard output(la console per intenderci). Hai già provato con l'opzione -O2 in fase di compilazione? Oppure , devi togliere l'if dentro il while. Molto semplicemente puoi memorizzare le informazioni che vuoi un un array e stamparle alla fine. A meno che non le vuoi in tempo reale.Quell' if dentro il ciclo è davvero deleterio per le prestazioni.
|
dunque così come lo posto ora va molto piu veloce!!!

solo che vorrei un modo piu furbo per contare a che punto dell'operazione è il programma... qualche idea??
Codice:
#include <stdio.h>
int main (void){
char nomefile[20];
scanf("%s",nomefile);
printf("%s!\n",nomefile);
char *buf;
buf = new char [64000];
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, 64000, f) ) {
int y;
for(y=0;y<=64000;y++) buf[y]=buf[y]+1;
x++;
if((x%16)==0)
printf("%dMb\n",(x/16));
fwrite( buf, 1, b, f_out);
}
pclose(f);
fclose(f_out);
}
return 0;
}