ho creato un file di testo tramite uno stream ofstream con una serie di caratteri scritti uno dietro l'altro senza spazi. vorrei invece che le lettere vengano scritte a gruppi di 5 (es: PROVA PROVA PROVA PROVA .....) separati da spazi e che le righe siano tutte della stessa grandezza e giustificate. volevo utilizzare la funzione fprintf per fare tutto questo: ma visto che la funzione accetta un puntatore a file, ho pensato di aprire nuovamente il file creato in precedenza questa volta però come
codice:
FILE *file;
file = fopen("testo.txt", "r+");
in modo da poter utilizzare fprintf. per fare un esempio chiarificatore usando gli interi, tipo qualcosa del genere
codice:
#include <string>
#include <iomanip>
#include <fstream>
#include <cstdio>
using namespace std;
int main()
{
ofstream f;
f.open("testo.txt");
for(int i = 0; i < 21; i++)
{
f << i;
}
f.close();
FILE *file;
int number;
file = fopen("testo.txt", "r+"); //apro di nuovo il file creato prima
if (file==NULL) perror ("Error opening file");
else
{
do {
number = fgetc (file);
fprintf(file, "%-5.5i", number); //formattazione
} while (number != EOF);
}
fclose(file);
return 0;
}
secondo voi va bene questo metodo o posso fare in qualche altro modo, magari più efficiente?