Typspezifizerer und Genaugikeit übergeben
-
Hallo,
ich weiß nicht, ob ich hier im richtigen Forum bin, da ich zwar in C++ schreibe, aber es so halb glaube ich ein C Problem ist. Sonst sry und einfach schieben
Ich möchte einen Typspezifizierer und u.U. auch bei floats die Genauigkeit an eine Funktion übergeben.
Mit Typspezifizerer meine ich %i, %s... Ist doch der korrekte Name, oder?
Ich hoffe, ihr versteht meine Frage
Danke schonmal im vorraus,
Grüße,
Joe
-
...
-
Bspw. so:
void xy(float b) { printf("xy: %1.2f", b); } int main(int argc, char *argv[]) { float a = 5.335; xy(a); }
Nun will ich an xy den Spezifizierer und die Genauigkeit übergeben, um sie dann in xy auszugeben.
Bitte keine printf vs. cout Diskussion lostreten. Das soll es nur veranschaulichen
-
...
-
Meinst du, dass du nun die Genauigkeit, die du bei dem Formatstring "%1.2f" als 2 festgelegt hast, als Variable an die Funktion übergeben willst? Aber das sollte doch eigentlich funktionieren, nach der Dokumentation auf http://en.cppreference.com/w/cpp/io/c/fprintf kann man als Genauigkeit ein * angeben, wodurch die Genauigkeit als zusätzliches int-Argument übergeben werden kann.
void xy(float b, int genauigkeit) { printf("xy: %1.*f", genauigkeit, b); } int main(int argc, char *argv[]) { float a = 5.335; xy(a, 2); }
Hast du das gemeint? Verwirrt mich nämlich, da es ja eigentlich möglich sein sollte
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum C (C89, C99 und C11) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Mr Joe schrieb:
Mit Typspezifizerer meine ich %i, %s... Ist doch der korrekte Name, oder?
Ist nicht richtig.
Das heißt Formatspezifizierer, Typspezifizierer sind an Literale gebunden, also z.B.1.23f für double -> float
oder
L"bla" für char[] -> wchar_t[]
-
Alles klar, genau das was ich gesucht habe.
Danke euch
Und danke Wutz für die Klarstellung