istruzione in c\c++

Pubblicità

sempronix

Utente Attivo
Messaggi
471
Reazioni
1
Punteggio
40
volevo chiedere se qualcuno mi poteva dire l'istruzione per poter salvare il..programma o l'array ecc direttamente durante l'esecuzione del programma..i dati ecc
va bene sia c++ che c normale grazie!!:figo:
 
"programma o l'array ecc direttamente durante l'esecuzione del programma..i dati ecc" questo è il punto piu difficile :)
 
Prima di tutto devi creare il file con FILE* variabile

Poi ci sono vari metodo o con la fwrite ( buffer, size_t t1, size_t nbe, File * fic)
buffer mi pare sia ciò che devi mettere nel file, fic è il file, size_t t1 è la grandezza del file e nbe è la volta da ripetere.
fgets(char *buf, int bsize, FILE *fp)
uguale a prima solo che bsize è il numero in byte dei dati da salvare (basta fare sizeof(buffer)
se no c'è anche la fprintf che è come una printf ma su file, semplicissima...

Ricordati di aprire il file in modalità wt o wt+ (se è di testo), wb (mi pare... se è binario), alla fine il file lo devi creare.. occhio la w (write) se il file non esiste lo crea ma se esiste lo cancella per ricrearlo. (alla fine il file va sempre chiuso, per sicurezza)
cmq se cerchi le info sui files troverai sicuramente roba spiegata meglio...
 
Ecco un esempio di codice:

@alastor: per la fwrite ti sei un pò imbrogliato. la fgets legge da file, non scrive ;) :)

Questo è C ANSI (quello standard), se vuoi il codice in C++, invece il programma è un pò diverso.

Codice:
#include <stdio.h> /*Definizioni del tipo FILE e delle varie funzioni*/

int main()
{
	FILE * FileStream = NULL; /*Variabile di tipo file*/

	int v_int = 10;
	unsigned long v_long = 123456789;

	char v_testo[10]= "Testo";

             /*Apro lo stream del file*/
	FileStream = fopen("c:\\NomeFileOutput.txt","w"); /*per defaul apre un file di testo, per il binario usare wb*/

            /*Se è uguale a NULL c'è stato un errore, esco*/
	if (FileStream == NULL)
	{
		printf("Errore: Impossibile aprire il file");
		return(1);
	}

            /*tutto ok, scrivo qualcosa nel file*/

             /*fprintf(<Puntatore a file>,<"testo da scrivere con eventuali parser per variabili>, <eventuali variabili>.....)*/
 
	fprintf(FileStream, "Ora scrivo il valore di v_int con 5 cifre fillate da zeri e vado accapo: %05d\n",v_int);
	fprintf(FileStream, "Ora scrivo il valore di v_long e vado accapo: %lu\n",v_long);
	fprintf(FileStream, "Ora scrivo il valore di v_testo e vado accapo: %s\n",v_testo);
           
             fflush(FileStream); /*svuoto dalla memoria i dati e li scrivo fisicamente sul file. Quando si fa una fprintf, i dati vengono inseriti in memoria e solo al raggiungimento di una data dimensione il s.o. scive i dati nel buffer. Con fflush si forza la scrittura*/

	fclose(FileStream); /*chiudo il file*/
	
	return(0); /*e' buona norma ritornare 0 quando il programma termina correttamente, altri valori servono per capire l'errore*/
		
}


Ciao!
 
Pubblicità
Pubblicità

Discussioni Simili

Indietro
Top