Ciao a tutti sono nuovo ,stavo tentando di creare un piccolo programma che apra un file e che ne modifichi il contenuto raddoppiando i singoli caratteri .
esempio :
testo originale : aaa
risultato : bbb
questo e il codice :
#include<stdlib.h>
#include<stdio.h>
int main() {
FILE *FPtr;
char x, y;
/* apre il file */
if ((FPtr=fopen("test.txt", "rb+"))== NULL){
printf("Errore in apertura del file\n");
return 0;
}else{
/* ciclo di lettura */
while ( !feof( FPtr ) ) {
/* legge un carattere */
fread(&x, sizeof(char), 1, FPtr);
/* riposiziona */
fseek(FPtr, -sizeof(char), SEEK_CUR);
/* mette il doppio in y e lo scrive */
y=2*x;
fwrite(&y, sizeof(char), 1, FPtr);
}
/* chiude il file */
fclose(FPtr);
}
return 0;
}
il problema forse anche stupido e che il ciclo no termina mai !! fa il primo passaggio correttamente ma quando ritorna inizia un ciclo infinito che mi stampa sempre la seconda lettera
come mai ?? potete spiegarmi come risolvere e a cosa e dovuto questo errore ??
grazie in anticipo !