PDA

View Full Version : fprintf ed un vettore dimanico di elementi double IN FILA, si può fare ?


Abadir_82
20-11-2006, 01:14
Ciao.

Su una stringa devo stampare due char e poi una serie di double IN FILA, separati da uno spazio, di cui però a priori non ne conosco la quantità.

Quindi non potrò scrivere:

fprintf(destinazione,"%s %s %lf %lf ....", char_1, char_2, double_1, double_2, ...)

perchè a priori non so quanti saranno i "%lf", mi viene indicato volta per volta a run time.
Per esempio al primo giro dovrò poter scrivere:

k_mean_mod train.pat 0.1 0.4 0.5

ed al secondo giro:

k_mean_mod train.pat 0.4 0.3 0.9 3.4 5.1

etc...

Come posso fare ?
Esistono metodi alternativi ?

Grazie.

wingman87
20-11-2006, 14:38
Tieni un contatore del numero di double da inserire e poi fai un ciclo for

trallallero
20-11-2006, 15:30
Ciao.

Su una stringa devo stampare due char e poi una serie di double IN FILA, separati da uno spazio, di cui però a priori non ne conosco la quantità.

Quindi non potrò scrivere:

fprintf(destinazione,"%s %s %lf %lf ....", char_1, char_2, double_1, double_2, ...)

perchè a priori non so quanti saranno i "%lf", mi viene indicato volta per volta a run time.
Per esempio al primo giro dovrò poter scrivere:

k_mean_mod train.pat 0.1 0.4 0.5

ed al secondo giro:

k_mean_mod train.pat 0.4 0.3 0.9 3.4 5.1

etc...

Come posso fare ?
Esistono metodi alternativi ?

Grazie.

semplice:
costrusici la stringa coi 2 char

sprintf( stringa , "%s %s", char_1, char_2 );


ogni volta che hai un nuovo double fai

sprintf( stringa + strlen(stringa), " %lf", double_val );

quando hai finito i doubles fai

fprintf( destinazione, "%s\n", stringa );

elementare Watson :D