sprintf()
-
hallo
ein frage zur sprintf() funktion.
ich habe folgende variable float ergebniss.
diese float zahl möchte ich nun mittels der sprintf() fkt. in ein
array wandeln, abar ohne das mir der decimalpunkt mit geschrieben wird.
die dadurch verlorenen kommastellen, sind mir egal.wie kann ich das machen?
besten dank tobias
-
const float f = 31.14; const int vorKomma = f; ostringstream os; os<<vorKomma; const string s = os.str(); cout<<s[0]<<endl;
-
hallo
kannst du mir mal kurz erklären was du hier programiert hast?
ich muss! die sprintf() fkt. benutzen, da ich das ganze auf einem
8bit up programiere.gruss tobias
-
na dann ab nach c.
-
Gibts etwa in C++ kein sprintf?
tobias: sprintf(array, "%.f", zahl); müßte es tun.
-
tobias: sprintf(array, "%.f", zahl); müßte es tun.
Für die die gerade kein Handbuch zur Hand haben:
sprintf(array, "%.f", zahl);
ist äquivalent zu:
sprintf(array, "%.0f", zahl);Der Punkt leitet dabei den Precision-Teil des Formatstrings ein. Für %f reguliert dieser die Anzahl der relevanten Nachkommastellen.
.0 (oder nur der Punkt) macht also genau das was du willst. Die Nachkommastellen ignorieren.
-
müßte
Ich war mir nicht ganz sicher. Meine Manpage unterschlägt nämlich, dass der Dezimalpunkt, wenn es keine Nachkommastellen zum Anzeigen gibt, dann und nur dann ausgegeben wird, wenn man den #-Modifizierer angibt.
-
@Bashar
Die MSDN hatte mir für %f gesagt:Default precision is 6; if precision is 0, or if the period (.) appears without a number following it, no decimal point is printed.