Articles of printf

Как% конверсии работает в инструкции printf?

Может быть, это не относится к SO, но я не знаю, где еще. Мне нужно переопределить printf(3) с помощью C без использования какой-либо функции, которая сделает преобразование для меня, я почти закончил, но я застрял на %a , я действительно не понимаю, что здесь происходит, например: printf(“%a\n”, 3.0); //#=> 0x1.8p+1 printf(“%a\n”, 3.1); //#=> 0x1.8cccccccccccdp+1 printf(“%a\n”, […]

запись форматированных данных неизвестной длины в строку (программирование на С)

Следующая функция C: int sprintf ( char * str, const char * format, … ); записывает форматированные данные в строку. Размер массива, переданного как str, должен быть достаточным, чтобы содержать всю форматированную строку. Однако, что, если длина форматированной строки неизвестна заранее? Как можно использовать эту функцию (или другую ее функцию) для записи форматированных данных, длина […]

select () не позволяет printf () без “\ n” в конце

У меня проблема с select (): она действует странно в моей программе, и я не могу понять почему. #include #include int main() { char msg[1024]; fd_set readfds; int stdi=fileno(stdin); FD_SET(stdi, &readfds); for (;;) { printf(“Input: “); select(stdi+1, &readfds, NULL, NULL, NULL); if (FD_ISSET(stdi, &readfds)) { scanf(“%s”,msg); printf(“OK\n”); } } } Какое поведение программы вы ожидаете? […]

Кодовые блоки MinGW и символ преобразования% n

Я пытаюсь использовать символ преобразования, чтобы подсчитать количество символов, напечатанных до сих пор, с помощью следующего кода. #include int main(void) { int n; printf(“%s: %nFoo\n”, “hello”, &n); printf(“%*sBar\n”, n, “”); } При правильной работе этот код печатает Hello Foo, затем на следующей строке Bar выровнен с Foo. Это отлично работает при компиляции с GCC на […]

Спецификаторы формата для типов, определенных для реализации, таких как time_t

Я хочу сделать свой код более независимым от платформы / реализации. Я не знаю, какое время будет реализовано как на платформе, когда код компилируется. Как узнать тип t чтобы определить, какой спецификатор формата использовать? … time_t t = time(NULL); printf(“%s”, t); …

Печать переменной void * в C

Привет всем Я хочу сделать отладку с printf. Но я не знаю, как напечатать переменную «out». Перед возвратом я хочу напечатать это значение, но его тип недействителен *. int hexstr2raw(char *in, void *out) { char c; uint32_t i = 0; uint8_t *b = (uint8_t*) out; while ((c = in[i]) != ‘\0’) { uint8_t v; if […]

printf вывод мусора вместо конкретных символов

Ну, у меня странная проблема с printf() . Это выводит мусор на экран. Думаю, это связано с памятью. Посмотри: char string1[] = “SAMPLE STRING”; char string2[20]; // some garbage in it /* let’s clear this madness*/ int i = 0; for (i; i < 20; i++) string2[i] = ' '; // Space, why not. printf("output: […]

Printf long long int в C с GCC?

Как напечатать f long long int а также unsigned long long int на C99 с использованием GCC? Я просмотрел другие сообщения, которые предлагают использовать %lld но он дает следующие предупреждения: предупреждение # 1: неизвестный тип преобразования символ ‘l’ в формате [-Wformat] | предупреждение # 2: слишком много аргументов для формата [-Wformat-extra-args] | Для следующей попытки: […]

почему эта программа c не печатает первую инструкцию printf?

#include #include int main(){ while(1) { fprintf(stdout,”hello-out”); fprintf(stderr,”hello-err”); sleep(1); } return 0; } При компиляции этой программы в gcc и ее выполнении она печатает только приветствия и не приветствует. Почему это так? Может кто-нибудь объяснить причину этого?

Unsigned int в C ведет себя отрицательно

Я не понимаю, почему вывод unsigned int отрицателен для следующего кода. Так же, как подписанный int. uint32_t yyy=1<<31; printf("%d\n",yyy); Выход: -2147483648 которая равна -2^31 .