Итак, я новичок в C.
Я пытался выяснить, в чем именно разница между putch()
и putchar()
?
Я попытался погуглить свои ответы, но все, что я получил, было тем же самым скопированным сообщением, в котором говорилось:
putchar()
: Эта функция используется для вывода на экран одного символа, и это может быть любой символ из набора символов C (т.е. это могут быть печатные или непечатаемые символы).
putch()
: Функцияputch()
используется для отображения всех буквенно-цифровых символов на стандартном устройстве вывода, таком как монитор. эта функция отображает один символ за раз.
Поскольку английский не мой родной язык, я немного потерялся. Есть ли непечатаемые символы в C? Если так, то кто они? И почему putch
не может дать такие же результаты?
Я пытался поискать в Google набор символов C и все имеющиеся буквенно-цифровые символы, но, как бы ни шло мое тестирование, на самом деле не было ничего, что одна функция могла бы напечатать, а другая - нет.
В любом случае, я немного потерян.
Может ли кто-нибудь помочь мне? Спасибо!
TLDR;
что putchar()
можно, что putch()
нельзя? (или наоборот или что-то idk)
Не знаю, надеялся, что между ними будет видимая разница, но, похоже, не нашел ее.
Разница в том, что putchar
— это стандартная функция, которая будет работать везде, тогда как putch
— это, IIRC, нестандартная функция MS-DOS, которая сегодня полностью устарела. Я призываю вас всегда использовать putchar
и забыть о putch
.
См. также аналогичный вопрос о getch и getchar.
Это отличный вопрос, и я тоже задавался этим вопросом.
putch заменяет символ новой строки (\n)
putchar — это функция на языке программирования C, которая записывает один символ в стандартный вывод.
Этот ответ вводит в заблуждение: putchar
также выполняет преобразование новой строки в устаревших системах, которые до сих пор используют это древнее соглашение, заимствованное из CP/M. Преобразование выполняется на более низком уровне реализации, а именно, когда содержимое буфера потока записывается в системный дескриптор. putch
делает это по-другому, но результат тот же, и использование этой функции делает программу излишне непереносимой. Не поддавайтесь на стратегию Microsoft EEE.
putchar()
— это стандартная функция, возможно реализованная как макрос, определенная в <stdio.h>
для вывода одного байта в стандартный поток вывода (stdout
).
putch()
— нестандартная функция, доступная в некоторых устаревших системах, изначально реализованная в MS/DOS как способ вывода символов на экран напрямую, минуя стандартную схему буферизации потоков. Эта функция в основном устарела, не используйте ее.
Вывод через stdout
на терминал по умолчанию буферизуется строкой в большинстве систем, поэтому, если ваш вывод заканчивается новой строкой, он появится на экране без дальнейшей задержки. Если вам нужно сбросить вывод при отсутствии новой строки, используйте fflush(stdout)
, чтобы принудительно записать буферизованное содержимое потока на терминал.
Я не понимаю, так лучше ли putchar, потому что он выводит один байт в выходной поток, а не просто выводит символы на экран напрямую? не будет ли в этом случае лучше putch, потому что компьютеру нужно меньше делать, чтобы распечатать символ?
Стандартный поток вывода, также известный как stdout
, по умолчанию направлен на терминал (он же экран). putch
— устаревшая, непереносимая альтернатива, о которой не стоит знать. Забудь и не пользуйся.
Что такое
putch()
? Вы имеете в видуputc()
? Спецификации языка C не определяют функцию с именемputch()
.