Salve a tutti, mi presento, mi chiamo giorgio, abito a napoli e frequento la facoltà di scienze informatiche, sono nuovo di qui ma ho seguito molte volte le vostre guide e volevo chiedervi un aiuto diretto.
il mio prof di programmazione ha fissato x domani una prova intercorso e ci ha lasciato degli esercizi guida da svolgere.
uno di questi che vi posto, mi da dei problemi nell'esecuzione. vi chiedo, cortesemente, di controllarmi il sorgente per capire qual'è il problema.
il testo dell'esercizio è questo:
"Eser_1 Sostituire in un file di testo già creato, una stringa con un'altra; entrambe vengono fornite in input dall'utente (sia quella che vogliamo modificare, sia la nuova che vogliamo inserire). Creare un nuovo file di testo che sia la copia del primo ma con la stringa scelta, modificata."
Praticamente, ho un file già creato, il programma deve leggere il contenuto del file, poi chiede quale parola deve modificare, poi chiede quale parola deve inserire e poi alla fine deve salvare tutto su un nuovo file.
ecco il sorgente mio con gli errori
codice:
#include<stdio.h>
int main(){
int n, i,j, lung,lung1, trv;
char t, c, str[100], str2[100], str3[100];
FILE *fp2;
FILE *fp;
fp=fopen("originale.txt","r");
fp2=fopen("copia.txt","w");
while(!feof(fp)) {
c=fgetc(fp);
printf("%c", c);
}
fclose(fp);
printf("\n\nInserisci la lunghezza dell'array1:\n");
scanf("%d", &lung);
printf ("\n\nInserisci la parola che vuoi modificare:\n");
for (i=0;i<lung;i++)
{
scanf ("%c", &str[i]);
}
printf("\n\nInserisci la lunghezza dell'array2:\n");
scanf("%d", &lung1);
printf ("In cosa la vuoi modificare?\n");
for (i=0;i<lung1;i++)
{
scanf ("%c", &str2[i]);
}
fp=fopen("originale.txt","r");
if(fp!=NULL)
{
while(!feof(fp)) {
i=0;
c=fgetc(fp);
while(c!=' ')
{
str3[i]=c;
++i;
c=fgetc(fp);
}
i=0;
trv=1;
while(i<lung-1 && trv==1)
{
if(str[i]==str3[i])
{
++i;
trv=1;
}
else trv=0;
}
if(trv==0)
{
for(j=0;j<i+1;j++)
{
fprintf(fp2,"%c",&str3);
}
}
else if (trv==1)
{
for(j=0;j<lung1+1;j++)
{
fprintf(fp2,"%c",&str2);
}
} }
}
else printf("il file nn esiste");
fclose(fp);
fclose(fp2);
system("PAUSE");
return 0;
}
In attesa di risposte, vi ringrazio anticipatamente!!