Salve ragazzi l'esercizio da fare è il seguente:
Scrivere un programma che prende come argomenti del main i nomi di due file di testo e appende il contenuto del secondo file al primo file. Ad esempio, se il primo file contiene Testo primo file e il secondo file contiene Testo secondo file allora il programma modifica il primo file così Testo primo fileTesto secondo file.
Il codice che ho scritto fa quanto richiesto(almeno dai test che ho fatto) ma aggiunge pure uno strano carattere alla fine del primo file, questo: ˙
Sapete dirmi il perchè?
codice:
#include <stdio.h>
#include <stdlib.h>
char* leggilinea( FILE* fsecondo, char* line ) {
int n = 0, c;
do {
c = fgetc( fsecondo );
line = realloc( line, sizeof(char)*(n+1) );
line[n++] = c;
}while( c != EOF );
if( line != NULL ) {
line = realloc( line, sizeof(char)*(n+1) );
line[n++] = '\0';
}
return line;
}
int main( int argc, char* argv[] ) {
FILE* fprimo = fopen( argv[1], "a" );
FILE* fsecondo = fopen( argv[2], "r" );
if( fprimo == NULL || fsecondo == NULL ) {
printf( "Errore nell'apertura files\n" );
return 0;
}
char* line = NULL;
line = leggilinea( fsecondo, line );
fprintf( fprimo, "%s", line );
free( line );
fclose(fprimo);
fclose(fsecondo);
return 0;
}