Sie printf()
einfach verwenden können, um eine formatierte Zahl an Standardausgabe:
int c = 5;
fprintf(stdout, "c [%02d]\n", c);
Wenn Sie nicht printf()
verwenden können, ist eine weitere Option in einem char *
oder String den gepolsterten Wert zu speichern. Sie können stattdessen sprintf()
verwenden, um die formatierte Zeichenfolge in einen char *
-Puffer zu schreiben.
Zum Beispiel:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char *argv[]) {
{
char* c_str = NULL;
int c_int = 5;
int c_str_length = 3; /* two bytes for "0", "5", and one byte for the nul terminator */
c_str = malloc(c_str_length);
if (!c_str) {
fprintf(stderr, "Error: Could not allocate space for string!\n");
return EXIT_FAILURE;
}
int n = sprintf(c_str, "%02d", c_int);
if (n != c_str_length) {
fprintf(stderr, "Error: Something went wrong in writing the formatted string!\n");
free(c_str);
return EXIT_FAILURE;
}
fprintf(stdout, "c_str: [%s]\n", c_str);
free(c_str);
return EXIT_SUCCESS;
}
Wenn Sie diesen Weg gehen, können Sie sehen, wie Sie einige Fehler auf dem Weg Überprüfung tun können. Sie müssen über die String-Länge nachdenken (Hinweis: log10()
), oder verwenden Sie eine statische char []
Array anstelle einer char *
ausreichend langen Länge.
Was verwenden Sie für "Ausgabe", die nicht "printf" ist? Hast du 'sprintf'? –
Es ist deine Umgebung - warum fragst du uns? –
Wenn Sie sagen, dass Sie nicht denken, dass 'printf()' Dezimalzahlen mit führenden Nullen formatieren kann, dann irren Sie sich. Verwenden Sie einfach das Flag "0" im entsprechenden Konvertierungsspezifizierer. –