|
|
Up |
|
|
  |
Author: Vito.DeTullioVito.DeTullio Date: Mar 7, 2008 00:02
Salve a tutti.
Ho un problema con una funzione con un numero di parametri variabile
(tipo *printf), non scritta da me, e che devo usare.
Tuttavia io, al momento della scrittura, non conosco il numero esatto
di parametri. So solo che sono tutti stringhe, e che sono in un array
di char* (di cui so la lunghezza).
semplificando enormemente, sono in questa situazione (non uso davvero
printf, ma il principio è identico)
#include
int main() {
// valori calcolati a run-time
char* formato = "%%s, %%s, %%s\n";
char* stringhe[] = { "uno", "due", "tre" };
int elementi = 3;
printf(formato, CHECIMETTO??);
}
il problema è che, ovviamente, non posso passare direttamente stringhe
a printf, e non posso "indovinare" quanti elementi ci saranno in
stringhe al momento della scrittura.
|
| Show full article (1.03Kb) |
|
| | 2 Comments |
|
  |
Author: phemptphempt Date: Apr 10, 2008 14:51
> Salve a tutti.
> Ho un problema con una funzione con un numero di parametri variabile
> (tipo *printf), non scritta da me, e che devo usare.
> Tuttavia io, al momento della scrittura, non conosco il numero esatto
> di parametri. So solo che sono tutti stringhe, e che sono in un array
> di char* (di cui so la lunghezza).
>
> semplificando enormemente, sono in questa situazione (non uso davvero
> printf, ma il principio è identico)
>
> #include
>
> int main() {
> // valori calcolati a run-time
> char* formato = "%%s, %%s, %%s\n";
> char* stringhe[] = { "uno", "due", "tre" };
> int elementi = 3;
>
> printf(formato, CHECIMETTO??); ...
|
| Show full article (1.31Kb) |
|
| | no comments |
|
  |
|
|
  |
Author: Giacomo Degli EspostiGiacomo Degli Esposti Date: Apr 11, 2008 10:22
> Salve a tutti.
ciao
> Ho un problema con una funzione con un numero di parametri variabile
> (tipo *printf), non scritta da me, e che devo usare.
[...]
> il problema è che, ovviamente, non posso passare direttamente stringhe
> a printf, e non posso "indovinare" quanti elementi ci saranno in
> stringhe al momento della scrittura.
>
> Esiste un modo per poter "esplodere" (una macro?) un vettore nei suoi
> elementi?
Purtroppo no! Per lo meno, non in modo standard.
A seconda del compilatore che stai usando puoi provare a scrivere
dell'assembler per riprodurre la stessa situazione generata dal compilatore.
Tra l'altro si tratta di una faq: http://c-faq.com/varargs/index.html
La 15.13 e' quella che ti interessa.
ciao
Giacomo
|
| |
| no comments |
|
RELATED THREADS |
  |
|
|
|
|
|