Forum: Mikrocontroller und Digitale Elektronik Variable Anzahl von Argumenten direkt an fprintf weitergeben??


von Gast (Gast)


Lesenswert?

Hallo zusammen,

Ich wollte mal nachfragen, was ich falsch mache?

Ich habe folgende Funktion geschrieben:
1
 
2
int print_debug (char *fmt, ... )
3
{
4
int n;
5
6
va_list ap;
7
8
va_start(ap, *fmt);
9
n=fprintf(&debugout, fmt,  ap);
10
va_end(ap);
11
12
return n;
13
}

aufrufen tu ich die Funktion mit:
1
 
2
print_debug("Test1=%x Test2=%x\n\r",0x55,0x56);

Das Problem ist, dass ich bei der Ausgabe folgendes sehe:

Test1=450 Test2=55 (anstatt: Test1=55 Test2=56 )

Der Sinn der der Sache ist, ich will die Ausgabe später per Befehl 
einschaltbar machen.


Was mache ich falsch? Ist das so wie ich mir das vorstelle überhaupt 
möglich?

Grüße

von (prx) A. K. (prx)


Lesenswert?

Erstens: va_start(ap, fmt);
Zweitens: such mal nach vfprintf, damit geht es.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.