Oppure

Loading
28/08/11 15:13
damag
vorrei sapere come salvare un vettore su file di testo e vorrei anche sapere come rileggere questo vettore
help :idea:
aaa
28/08/11 15:31
Pitagora
usa la funzione fwrite per scrivere il vettore. Poi fai un rewind e successivamente invoca la funzione fread, per poter leggere! Per maggiori informazioni cplusplus.com/reference/clibrary/cstdio/
aaa
28/08/11 16:28
Pitagora
Certo eccoti l'esempio:

#include <stdio.h>

int main(int argc, char **argv)
{
	int i;
	int vettoreScritto[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
	int vettoreLetto[ sizeof( vettoreScritto ) ];
	
	FILE *testo = fopen( "nomefile.txt", "w+b" );
	
	if ( !testo )
		return 1;
	
	/* scrivo il vettore nel file */
	fwrite( vettoreScritto, sizeof ( int ), sizeof( vettoreScritto ), testo );
	
	/* azzero l'indice */
	rewind( testo );
	
	/* leggo il vettore dal file */
	fread( vettoreLetto, sizeof( int ), sizeof( vettoreLetto ), testo );
	
	/* stampa il vattore */
	for (i = 0; i < sizeof( vettoreScritto ) / sizeof( int ); i++ )
	{
		printf( "%d\n", vettoreLetto[i] );
	}

	printf( "Premere invio per terminare ... " );
	getchar();
	fclose( testo );
	return 0;
}


Ho usato un vettore di interi, ma è facilmente modificabile, in base al tipo da usare: float, char... :k:
aaa
30/08/11 19:19
comina8
Leggere e scrivere vettori su file di testo non è molto comodo e conviene utilizzare il metodo esposto da @Pitagora che utilizza però file binari.
Su un file .txt la procedura è molto semplice:

int i;
int v[10];

//Modifichi v

for(i=0; i<10; i++)
    {
         fprintf(FilePointer,"%d",v[i]);
    }


Per leggerlo invece basta usare lo stesso procedimento ma usando la funzione fscanf naturalmente.

Ti consiglio nel caso non l'avessi già fatto di studiarti i file binari, molto utili in situazioni del genere...
aaa