PDA

Visualizza la versione completa : [C++] Scrivere output in un file di testo


piraxvil
27-03-2011, 20:27
Salve,
ho un programma semplicissimo di questo tipo:



/* srand example */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define b \nuovo\

int main ()
{
int i = 1;
srand(time(0));
etichetta:


printf (" /nuovo/%dn.avi", (rand() %50 + 1), i++);
printf (" /nuovo/%dn.avi", (rand() %50 + 1));
printf (" /nuovo/%dn.avi", (rand() %50 + 1));
printf (" /nuovo/%dn.avi", (rand() %50 + 1));
printf (" /nuovo/%dn.avi", (rand() %50 + 1));
printf (" /nuovo/%dn.avi", (rand() %50 + 1));
printf (" /nuovo/%dn.avi", (rand() %50 + 1));
printf (" /nuovo/%dn.avi", (rand() %50 + 1));
printf (" /nuovo/%dn.avi", (rand() %50 + 1));
printf (" /nuovo/%dn.avi", (rand() %50 + 1));
printf (" /nuovo/%dn.avi", (rand() %50 + 1));
printf (" /nuovo/%dn.avi\n", (rand() %50 + 1));


if (i < 3) goto etichetta;



system("PAUSE");



return 0;
}


Devo semplicemente scrivere l'output in un file txt.
Come possi fare?
Grazie

MItaly
27-03-2011, 20:32
Invece di printf usa fprintf passandogli il FILE * ottenuto con la funzione fopen (usata per aprire il file). Ricordati alla fine di chiudere il file con fclose.

Per il resto, però, ti consiglio vivamente di far sparire tutte quelle ripetizioni, nonché il goto e l'etichetta impiegando un semplice ciclo for. Anche l'uso della system in quella maniera è cattiva pratica, lo puoi sostituire con un semplice


printf("Premere Invio per uscire...");
getchar();

Tra l'altro non capisco cosa sia lì a fare quella #define: eliminala.

Infine, quando posti del codice sul forum usa i tag
... , altrimenti si perde l'indentazione.

---EDIT---
Ah, tra l'altro hai messo il tag C++ ma di fatto quello che hai scritto è un programma C... dunque a che linguaggio si riferisce la tua domanda?

Loading