Oppure

Loading
28/02/12 14:50
Dante
Per cio che ho capito sscanf legge da una stringa"buffer" e memorizza negli argomenti "p.x" e "p.y", si può decidere la formattazione con il secondo parametro.

es:
char buffer[10];
pnt ps;	   /*il tipo punto, e definito in un altro file ha come membri 2 int*/

FILE *pfile = fopen(nomefile, "r");		  
	fgets(buffer, 10, pfile);
fclose(pfile);
		
	sscanf(buffer, "%i %i", ps.x, ps.y);


tuttavia:
cc sscanf.c -o sscanf
In file included from main.c:3:0:
sscanf.c: In function ‘cntrslz’:
sscanf.c:15:2: warning: format ‘%i’ expects argument of type ‘int *’, but argument 3 has type ‘int’ [-Wformat]
sscanf.c:15:2: warning: format ‘%i’ expects argument of type ‘int *’, but argument 4 has type ‘int’ [-Wformat]









aaa
28/02/12 15:07
dmr
Ciao, ricorda di mettere & nello sscanf cioe' sscanf(buffer, "%d %d",& ps.x, &ps.y); perchè ha bisogno dell'indirizzo di memoria delle variabili passate come argomento in modo da modificarne il valore.
aaa
28/02/12 16:24
nessuno
E impariamo a leggerli questi messaggi ...

expects argument of type ‘int *’

... mi aspettavo un puntatore ad int ...

but argument 3 has type ‘int’

... e tu mi hai dato un semplice int ...

... sia per l'argomento 3 che per l'argomento 4.


Quindi devi fornire un puntatore all'intero e non l'intero

sscanf(buffer, "%i %i", &ps.x, &ps.y);







Ultima modifica effettuata da nessuno 28/02/12 16:24
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
28/02/12 17:56
Dante
grazie nessuno, si hai ragione, questa domanda la potevo risparmiare, se ci avessi dedicato un poo piu di attenzione... :hail:
aaa
28/02/12 18:14
nessuno
Postato originariamente da Dante:

grazie nessuno, si hai ragione, questa domanda la potevo risparmiare, se ci avessi dedicato un poo piu di attenzione... :hail:


Più che altro, se vuoi imparare, devi tentare di chiedere al forum solo quando non sei riuscito - dopo vari tentativi e giorni di riflessione e prove - a risolvere da solo.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.