Как работает fprintf?Как работает fprintf на C++?
Если я пишу fprintf(outfile, "test %d %d 255/r", 255, 255);
Что это значит? Я знаю, что outfile - это имя моего выходного файла. Что означают другие значения?
Как работает fprintf?Как работает fprintf на C++?
Если я пишу fprintf(outfile, "test %d %d 255/r", 255, 255);
Что это значит? Я знаю, что outfile - это имя моего выходного файла. Что означают другие значения?
"test %d %d 255/r"
сообщает, что после него будут аргументы (и они есть: 255, 255), и ожидается, что они будут иметь целочисленный тип. И они будут помещены вместо% d.
В результате вы получите строку test 255 255 255
в своем файле.
Для дополнительной информации читайте std::fprintf
reference.
Он похож на printf, он просто печатает вывод в файл.
Первый параметр - это дескриптор файла, второй - строка форматирования, после чего существует переменное количество аргументов в зависимости от того, сколько спецификаторов формата вы использовали во втором параметре.
Проверьте documentation, он содержит всю информацию, которую вы запрашиваете.
Второй аргумент - это строка формата. Любые дополнительные аргументы являются параметрами спецификатора в строке формата (в данном случае,% d). Проверьте http://www.cppreference.com/wiki/c/io/printf за хорошее введение в функции printf.
Это отформатированный вывод в поток файлов. Он работает как Printf делает, разница в том, что Printf всегда выводит на stdout.If Вы писали
fprintf(stdout, "test %d %d 255\n", 255, 255);
было бы таким же, как printf
эквивалент.
Второй аргумент - строка формата. Строка формата содержит спецификаторы формата, такие как %s
, %d
, %x
. Ваш содержит два %d
s. Каждый спецификатор формата должен иметь соответствующий аргумент в fprintf
. С уважением имеет два %d
спецификаторов, таким образом, есть два числовые аргумент:
fprintf(outfile, "Here are two numbers: %d, %d", 4, 5);
также, вы можете использовать строковые описатели (%s
), шестнадцатеричные спецификатор (%x
) или длинный/длинный длинные Int спецификатор (%ld
, %lld
). Вот список из них: http://www.cppreference.com/wiki/c/io/printf. Обратите внимание, что они одинаковы для всех функций ввода-вывода с форматированием (например, sprintf и scanf).
Кроме того, в вашем первоначальном примере «/r
» будет буквально печатать «/r
». Похоже, вы пытались сделать возврат каретки («\r
»).
Вы также должны задать вопрос о своем знании первого параметра. «outfile» в ** не ** * имя * вашего выходного файла. – innaM
Это печально, первый результат поиска «fprintf» google рассказал бы вам все об этом. – DaClown
Правда, но теперь * это * обсуждение имеет шанс появиться в Google для следующего человека. Возьмите это нахмурившись и переверните его вверх дном. –