62 lines
1.2 KiB
C++
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)");
|
|
}
|
|
} |