Oppure

Loading
28/09/11 14:22
giga91
Salve a tutti, sono di nuovo qui a chiedere il vostro aiuto. Avrei bisogno di creare una funzione che passato il puntatore di tipo file mi prenda solo due parole e le salvi in due variabili char[20].
Ho provato a scrivere un programmino ma non funge

void NEW (FILE *file)
{
	char sam[600],sam1[600],c;
	int i=0;

	while(c != '\n')                        //lo utilizzo per scendere di una riga (funziona)
	{	
              c = getc(file);
	}
	
        while(c != '<')                        //lo utilizzo per salvare la mia parola nel mio vettore
	{	
              c = getc(file);
	      sam[i]=c;
	      i++;
	}

	while(c != '\n')                        //lo utilizzo per scendere di una riga (ma non funziona)
	{	
              c = getc(file);
	}
        i=0;
        while(c != '<')                        //lo utilizzo per salvare la mia parola nel mio vettore
	{	
              c = getc(file);
	      sam1[i]=c;
	      i++;
	}

}

aaa
28/09/11 14:31
In che senso "due parole"?

Le prime due parole del file? Sono separate da spazi? Sono su due righe?

Potresti usare la fgets ma dipende ...

E poi, come le passi al programma chiamante ?
Ultima modifica effettuata da 28/09/11 14:32
28/09/11 14:35
giga91
si in effetti mi sono spiegato male.
un esempio del mio file

NAME : pippo</a></a><br />
COGNOMEL : gallo<br />
EMAIL : gallo@live.it <br />
CHIAVE : 123<br />


Io devo prendere gallo e 123 e salvarli in due variabili di tipo char
aaa
28/09/11 14:46
Allora la cosa è più complessa.

Se le righe sono separate (da newline) allora devi leggere con un ciclo e la fgets fino a quando non trovi la parte iniziale delle righe che ti servono

COGNOME

CHIAVE

a quel punto, mi sembra che i dati siano posti a partire da specifiche posizioni e quindi puoi lavorare con gli indici delle stringhe lette.

I dati non possono andare in variabili char dato che sono stringhe, semmai in array di char. Però devi fare in modo che non siano locali. Devi allocare la memoria e restituire i puntatori oppure allocare le stringhe dall'esterno e passarle alla funzione.

28/09/11 14:55
giga91
Non esisti esempi da cui prendere spunto?
aaa
28/09/11 14:59
Esempi specifici non so ... dovrei cercare su internet ma lo puoi fare anche tu.

Ti posso consigliare di documentarti sulle varie funzioni necessarie (attraverso le quali puoi ottenere esempi)

fgets
cplusplus.com/reference/clibrary/cstdio/fgets/

strncmp
cplusplus.com/reference/clibrary/cstring/strncmp/
09/10/11 15:01
Umberto
Puoi fare anche un analisi carattere con fget.
aaa