getc По сравнению с getchar По сравнению с Scanf для чтения символа от stdin

Из ниже трех функций:

getc getchar и scanf

который является лучшим для чтения символа от stdin и почему?

Там кто-либо - известные недостатки или ограничения для какой-либо из этих функций, которая делает один лучше, чем другой?

23
задан Jay 24 March 2010 в 11:05
поделиться

1 ответ

Если вы просто хотите прочитать один символ из стандартного ввода, тогда getchar () будет правильным выбором. Если у вас более сложные требования, то getchar () будет недостаточно.

  • getc () позволяет вам читать из другого потока (скажем, открытого с помощью fopen () );
  • scanf () позволяет вам читать больше, чем просто по одному персонажу за раз.

Самая распространенная ошибка при использовании getchar () - это попытка использовать переменную char для сохранения результата. Вам необходимо использовать переменную int , поскольку диапазон значений, возвращаемых getchar () , представляет собой «значение в диапазоне unsigned char , плюс единственный отрицательный значение EOF ". Переменная char не имеет для этого достаточного диапазона, что может означать, что вы можете спутать полностью допустимый возврат символа с EOF . То же самое относится к getc () .

26
ответ дан 29 November 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: