Является ли getchar() эквивалентным scanf(“%c”), а putchar() эквивалентным printf(“%c”)?

StackOverflow https://stackoverflow.com/questions/2482634

  •  21-09-2019
  •  | 
  •  

Вопрос

Является a = getchar() эквивалентно scanf("%c",&a);?

Является putchar(a) эквивалентно printf("%c",a); где a является char переменная?

Это было полезно?

Решение

Вообще говоря, да, это одно и то же.

Но они не бывают несколько придирчивыми.Функция getchar вводится для возврата int и не char.Это делается для того , чтобы getchar могут ли оба все возможные char значения и, дополнительно, коды ошибок.

Таким образом, в то время как следующее успешно компилируется в большинстве компиляторов, вы, по сути, удаляете сообщение об ошибке

char c = getchar();

Функция scanf, однако, позволяет вам использовать char введите напрямую и выделите код ошибки в возвращаемое значение.

Другие советы

Здесь они делают то же самое.Однако, если вы знаете, что вы просто играете персонажей, то getchar и putchar будет более эффективным, поскольку printf и scanf вариантам придется каждый раз анализировать строку, чтобы определить, как обработать ваш запрос.Кроме того, они могут быть вызваны в библиотеке более низкого уровня, что означает, что вам, возможно, не придется иметь printf/scanf связаны, если они не нужны в другом месте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top