#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fi , *fo ; /* Puntatori a File Input e File Output */
char nomefile[40], modo[2], stringa[51], cScambio[3] ;
int k = 1 , fine = 0 ;
while ( fine == 0 )
{
fflush(stdin);
printf("\nInserire il nome del file che si vuole creare : ");
gets(nomefile);
printf("\nDigitare la lettera \'w\' per creare il file in modo \"Scrittura\" : ");
gets(modo);
if ( ( fi = fopen( nomefile, modo )) != NULL )
{
printf("\nIl file %s e' stato creato in modo corretto!",nomefile);
printf("\n\nInserire il testo da salvare nel file creato : ");
gets(stringa);
fprintf( fi , "%s ", stringa );
printf("\nPremere \"1\" per Terminare o \"0\" per inserire altro testo : ");
scanf("%d",&fine);
}
else /* Nel caso il file non venga creato/aperto in maniera corretta */
{
printf("\nErrore di apertura!\n");
getche();
fclose(fi);
}
}
fflush(stdin);
printf("\nDigitare due lettere\nche verranno invertite nel testo precedentemente inserito : ");
gets(cScambio);
printf("\ncScambio[1] = %c\n",cScambio[0]);
printf("\ncScambio[2] = %c\n",cScambio[1]);
getche();
int i = 0 ;
do
{
stringa[i];
if ( stringa[i] == cScambio[0] )/* Scambio la prima lettera inserita con la seconda */
{
stringa[i] = cScambio[1];
fprintf(fi, "%c", stringa[i] );
i++ ;
}
if ( stringa[i] == cScambio[1] )/* Scambio la seconda lettera inserita con la prima */
{
stringa[i] = cScambio[0];
fprintf(fi, "%c", stringa[i] );
i++ ;
}
if ( stringa[i] != cScambio[0] && stringa[i] != cScambio[1] )
{
fprintf(fi, "%c", stringa[i] );
i++ ;
}
}while( stringa[i] != '\0');
k = fclose(fi);
if ( k == 0 )/* Controllo che il file di testo venga chiuso correttamente */
{
printf("\n\n\t\t\t\tFINE ESERCIZIO!\n ");
getche();
return 0 ;
}
else
printf("\nErrore di chiusura del file di testo creato!\n\n");
}
Questo è ciò che ho pensato! l'ho appena provato e funziona! Se qualcuno ha dei suggerimenti,obbiezioni o migliorie da apportare ben venga !