Предположим, я использую следующую строку спецификатора printf()
:
printf("%.*s", length, str);
который просит printf()
напечатать первые length
символа в str
. Вопрос в том, какой тип у length
? Я вижу только краткие упоминания о целом числе в документации.
Так что похоже, что это int
. Тогда похоже, что я не могу использовать следующий код, когда строка очень длинная:
const char* startOfString = ...
const char* middleOfString = ...
printf("%.*s", (int)( middleOfString - startOfString ), startOfString);
Похоже, я не могу вывести более INT_MAX
символов таким образом.
Итак, какой тип является точным? Это int
или это size_t
или что-то еще?
man fprintf
) в unix-подобной системе (следующий аргумент... который должен быть типа int). Если вы работаете в Windows, вы можете прочитать справочные страницы в Интернете. . Также есть en.cppreference.com/w/c/io/fprintf . (точность задается дополнительным аргументом типа int) - person rici   schedule 30.03.2015