Подтвердить что ты не робот

Когда следует использовать fputs вместо fprintf?

В чем же разница между этими двумя?

4b9b3361

Ответ 1

fprintf делает отформатированный вывод. То есть, он читает и интерпретирует формат, который вы подаете и записываете в выходной поток Результаты.

fputs просто записывает строку, которую вы передаете на указанный вывод поток.

fputs() не нужно анализировать входную строку, чтобы выяснить, что все, что вы хотите сделать, это напечатать строку. fprintf() позволяет вам форматировать во время вывода.

Ответ 2

Как уже отмечали другие комментаторы (и, как видно из документов), большая разница в том, что printf позволяет форматировать аргументы.

Возможно, вы спрашиваете, эквивалентны ли функции, если никакие дополнительные аргументы не передаются на printf()? Ну, это не так.

   char * str;
   FILE * stream;
   ...
   fputs(str,stream);    // this is NOT the same as the following line
   fprintf(stream,str);  // this is probably wrong

Вторая, вероятно, неверна, поскольку строковый аргумент fprintf() является все еще строкой форматирования: если он имеет символ "%", он будет интерпретироваться как спецификатор форматирования.

Функционально эквивалентная (но менее прямая/эффективная/приятная) форма будет

   fprintf(stream,"%s", str);  

Ответ 3

Эмм... ... puts() просто записывает строку, а printf() имеет ряд средств форматирования для нескольких типов данных.

fputs() http://www.cplusplus.com/reference/clibrary/cstdio/fputs/

fprintf() http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/

Документация полезна! Научитесь читать, и у вас будет мощный инструмент на вашей стороне.