Puts c что это
Перейти к содержимому

Puts c что это

C library function — puts()

The C library function int puts(const char *str) writes a string to stdout up to but not including the null character. A newline character is appended to the output.

Declaration

Following is the declaration for puts() function.

Parameters

str − This is the C string to be written.

Return Value

If successful, non-negative value is returned. On error, the function returns EOF.

Example

The following example shows the usage of puts() function.

Let us compile and run the above program to produce the following result −

Puts c что это

fputs() выводит строку s в поток stream без завершающего символа ‘\0’ .

Функция putc() эквивалентна fputc() , так что она может быть реализована как макрос.

putchar( c ); полностью эквивалентна putc( c , stdout ).

puts() записывает строку s и завершающий перевод строки в stdout .

Функции, перечисленные выше, могут быть использованы друг с другом или вместе с другими функциями ввода/вывода из библиотеки stdio .

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

puts() и fputs() возвращают неотрицательное число в случае удачного завершения вызова или EOF в случае ошибки.

В чем разница между printf() и puts() в C?

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

Является puts() просто примитивной версией printf() . Должен ли он использоваться для всех возможных printf() без строковой интерполяции?

ОТВЕТЫ

Ответ 1

puts проще, чем printf , но имейте в виду, что первый автоматически добавляет новую строку. Если это не то, что вы хотите, вы можете fputs указать свою строку в stdout или использовать printf .

Ответ 2

(Это указано в комментарии Zan Lynx, но я думаю, что он заслуживает ответа — учитывая, что принятый ответ не упоминает об этом).

Существенное различие между puts(mystr); и printf(mystr); заключается в том, что в последнем аргумент интерпретируется как строка форматирования. Результат будет тем же самым (за исключением добавленной новой строки), если строка не содержит никаких управляющих символов ( % ), но если вы не можете полагаться на это (если mystr — это переменная вместо литерала), вы не следует использовать его.

Итак, это вообще опасно — и концептуально неправильно — использовать переменную для первого аргумента printf :

То же самое относится к fputs vs fprintf (но fputs не добавляет новую строку).

Ответ 3

Помимо форматирования, puts возвращает неотрицательное целое число в случае успеха или EOF , если оно не выполнено; а printf возвращает количество напечатанных символов (не включая конечный нуль).

Ответ 4

В простых случаях компилятор преобразует вызовы на printf() на вызовы puts() .

Например, следующий код будет скомпилирован для кода сборки, который я покажу далее.

В этом примере я использовал GCC версии 4.7.2 и скомпилировал источник с gcc -o hello hello.c .

Ответ 5

Правильно, printf можно рассматривать как более мощную версию puts . printf предоставляет возможность форматирования переменных для вывода с использованием спецификаторов формата, таких как %s , %d , %lf и т.д.

Ответ 6

По моему опыту printf() отображает больше кода, чем puts() , независимо от строки формата.

Если мне не требуется форматирование, я не использую printf . Однако fwrite до stdout работает намного быстрее, чем puts .

Примечание: в комментариях ‘\ 0’ является целочисленной константой. Правильное выражение должно быть sizeof(char) , как указано в комментариях.

Ответ 7

puts() записывает строку s и завершающую новую строку в stdout.

Функция printf() записывает вывод в stdout под управлением строки формата, которая указывает, как последующие аргументы преобразуются для вывода.

Я воспользуюсь этой возможностью, чтобы попросить вас ознакомиться с документацией.

Ответ 8

Функция printf() используется для печати обеих строк и переменных на экране, в то время как функция puts() позволяет вам печатать строку только на вашем экране.

Ответ 9

puts — это простой выбор и добавляет новую строку в конец, а printf записывает вывод из форматированной строки. Документация для puts: http://linux.die.net/man/3/puts и для printf: http://linux.die.net/man/3/printf

Я бы рекомендовал использовать только printf, так как это более согласовано, чем метод переключения, т.е. если вы debbugging, менее болезненно искать все printfs, чем puts и printf. В большинстве случаев вы хотите вывести переменную в свои распечатки, поэтому puts в основном используется в примере кода.

Ответ 10

При сравнении puts() и printf() , хотя потребление памяти почти одинаково, puts() занимает больше времени по сравнению с printf() .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *