Вот моя тестовая программа: #include
int main()
{
const char *npa = "541";
printf("%04.4s\n", npa);
return 0;
}
Вот результат:
[user@host:/work/user]# gcc -o test test.c
[user@host:/work/user]# ./test
[user@host:/work/user]# 541
Я так понимаю, что должно быть выведено 0541
, а не 541
, верно? Почему gcc не соблюдает флаг заполнения?
Обновление: спасибо за все предоставленные комментарии. Проблема в том, что у меня есть некоторые другие строки, которые не являются чисто цифрами и все еще хотят, чтобы они были дополнены ведущими нулями, есть ли обход этого ограничения?