Рубрики

положить () против printf () для печати строки

В Си, учитывая строковую переменную str , какую из следующих двух следует предпочесть, чтобы вывести ее в stdout?

  1)  puts(str);
  2)  printf(str);

для печати строки может быть предпочтительна метод put (), поскольку она обычно дешевле (реализация put (), как правило, проще, чем printf ()), и если строка имеет символы форматирования, такие как «%», то printf () выдаст неожиданный результат. Результаты. Кроме того , если строка является строкой ввода пользователя, а затем использовать в Е () может вызвать проблемы безопасности (см это для подробностей).
Также обратите внимание, что put () перемещает курсор на следующую строку. Если вы не хотите, чтобы курсор перемещался на следующую строку, вы можете использовать следующую вариацию put ().

   fputs(str, stdout)

Вы можете попробовать следующие программы для тестирования рассмотренных выше различий между put () и printf ().

Программа 1

#include<stdio.h>

int main()

{

    puts("Geeksfor");

    puts("Geeks");

      

    getchar();

    return 0;

}

Программа 2

#include<stdio.h>

int main()

{

    fputs("Geeksfor", stdout);

    fputs("Geeks", stdout);

      

    getchar();

    return 0;

}

Программа 3

#include<stdio.h>

int main()

{

    //% намеренно помещен здесь, чтобы показать побочные эффекты использования printf (str)

    printf("Geek%sforGeek%s");  

    getchar();

    return 0;

}

Программа 4

#include<stdio.h>

int main()

{    

    puts("Geek%sforGeek%s");    

    getchar();

    return 0;

}

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

положить () против printf () для печати строки

0.00 (0%) 0 votes