17
голосов
5ответов
7513 просмотров

Why weren't new (bit width specific) printf() format option strings adoped as part of C99?

While researching how to do cross-platform printf() format strings in C (that is, taking into account the number of bits I expect each integer argument to printf() should be) I ran across this section of the Wikipedia article on printf(). The article discusses non-standard options that can be pas...

47
голосов
5ответов
48192 просмотров

Что означает спецификатор формата% * s?

В некотором коде, который мне приходится поддерживать, я видел спецификатор формата %*s. Кто-нибудь может сказать мне, что это такое и почему он используется? Пример его использования: fprintf(outFile, "\n%*s", indent, "");

8
голосов
4ответов
3225 просмотров

Какова цель использования обозначения [^ в scanf?

Я наткнулся на код и мне стало интересно, что задумал исходный разработчик. Ниже представлена ​​упрощенная программа, использующая этот шаблон: #include <stdio.h> int main() { char title[80] = "mytitle"; char title2[80] = "mayataiatale"; ...

148
голосов
9ответов
140496 просмотров

Как мне печатать такие типы, как off_t и size_t?

Я пытаюсь напечатать такие типы, как off_t и size_t. Каков правильный заполнитель для printf() , который является переносимым ? Или есть совершенно другой способ распечатать эти переменные?

385
голосов
12ответов
773690 просмотров

Как отформатировать unsigned long long int с помощью printf?

#include <stdio.h> int main() { unsigned long long int num = 285212672; //FYI: fits in 29 bits int normalInt = 5; printf("My number is %d bytes wide and its value is %ul. A normal number is %d.\n", sizeof(num), num, normalInt); return 0; } Вывод: My number is 8 bytes...