School-Coding-Cpp/sfusi/es23_mostratab_foschini_fil...

64 lines
1.6 KiB
C++

/*
Nome: Mario
Cognome: Montanari
Classe: 3AIN
Data: 09/04/2025
es23. (mostratab)
Scrivere un programma che acquisisca da un file di testo la
tabella dell'esercizio precedente e la visualizzi sullo
schermo nel seguente formato:
+-----------------+-----------------+-------------+-------------+
| Cognome | Nome | Altezza (m) | Peso (kg) |
+-----------------+-----------------+-------------+-------------+
| Rossi | Mario | 1.75 | 76 |
| Ferraro | Carlo | 1.84 | 82 |
| Marelli | Chiara | 1.65 | 58 |
+-----------------+-----------------+-------------+-------------+
*/
#include <iostream>
#define SIZE_LINE 1000+1
using namespace std;
void apriFile(const char * nomeFileSorgente, const char * nomeFileDestinazione);
int main(void) {
apriFile("tabella.txt", "testo.txt");
return 0;
}
void apriFile(const char * nomeFileSorgente, const char * nomeFileDestinazione) {
FILE * fr = fopen(nomeFileSorgente, "rt");
if (fr != NULL) {
FILE * fw = fopen(nomeFileDestinazione, "wt");
if (fw != NULL) {
char riga[SIZE_LINE];
char nome[SIZE_LINE];
char cognome[SIZE_LINE];
float altezza;
int peso;
for (int i = 0; i < 3; i++) {
fgets(riga, sizeof(riga), fr);
}
while (fscanf(fr, "| %16s | %16s | %f | %d | %*[\n]", cognome, nome, &altezza, &peso) == 4) {
fprintf(fw, "%s\t%s\t%.2f\t%d\n", cognome, nome, altezza, peso);
}
fclose(fw);
} else {
perror("Error (destination)");
}
fclose(fr);
} else {
perror("Error (source)");
}
}