School-Coding-Cpp/sfusi/es06_copiafile2_foschini_fi...

62 lines
1.2 KiB
C++

/*
Nome: Mario
Cognome: Montanari
Classe: 3AIN
Data: 04/04/2025
es06. (copiafile2)
Scrivere un programma che effettui la copia un file
di testo in un altro file trasformando le lettere
minuscole in maiuscole e le maiuscole in minuscole.
*/
#include <iostream>
#include <cctype>
using namespace std;
char reverseLowerUpper(char chr);
void copiaFile(const char * nomeFileSorgente, const char * nomeFileDestinazione);
int main(void) {
copiaFile("in.txt", "out.txt");
return 0;
}
char reverseLowerUpper(char chr) {
if (isalpha(chr)) {
if (islower(chr)) {
chr = toupper(chr);
} else if (isupper(chr)) {
chr = tolower(chr);
}
}
return chr;
}
void copiaFile(const char * nomeFileSorgente, const char * nomeFileDestinazione) {
FILE * fr = fopen(nomeFileSorgente, "rt");
if (fr != NULL) {
FILE * fw = fopen(nomeFileDestinazione, "wt");
if (fw != NULL) {
char chr;
while ((chr = fgetc(fr)) != EOF) {
chr = reverseLowerUpper(chr);
fputc(chr, fw);
}
fclose(fw);
} else {
perror("Error (destination)");
}
fclose(fr);
} else {
perror("Error (source)");
}
}