В чем разница между get () и getch ()?

Я слышал об обеих функциях, но никогда не понимал их различий. Является gets()
для получения строки без нажатия Enter и getch() для получения только одного символа без нажатия Enter?

Спасибо

-2

Решение

getch() это функция в conio.h в системах Windows и DOS, которые не стандартизированы в C. Он используется для получения только (точно) одного символа. Он также существует в curses.h в системах * nix (по словам Майка в комментариях).

gets() стандартная функция в C, которая была удалена в новом C11 стандарт. Вы можете использовать его для ввода строки, но вы должны никогда не используй это. Вы не можете использовать его для безопасного ввода строки, потому что он пишет в память, пока вы печатаете. Таким образом, вы можете легко получить переполнение буфера.

2

Другие решения

Я никогда не понимал их различия

Эти методы имеют явно разные подписи (которые, очевидно, очень похожи на семантику ИМХО):

 char *gets( char *str );

int getch(void);

Обратите внимание, что getch() обозначение для конкретной платформы, определенный эквивалентный стандарт getc() функция хочет FILE* параметр.

0

getch является платформой или функцией, специфичной для компилятора.

gets Функция используется для возврата нуля или более символов из стандартного (консольного) ввода.

Изменить 1:
В зависимости от реализации вашего компилятора, getch Функция может использоваться, чтобы получить символ, не ожидая пользователя, или получить символ, не отражая эхо на консоль.

Одна функция получает один символ, другая получает много.

0

gets() был удален в C11 и помечен как устаревший в C ++ 11.

Я не слышал о getch(), Ты имеешь ввиду getchar()?

В любом случае вы должны иметь возможность самостоятельно просматривать документацию. Эти две функции являются частью cstdio

-1
По вопросам рекламы [email protected]