Некоторые функции Windows C не работают на Mac, например. getch()
. Если я запущу их на виртуальной машине Windows, они будут работать? Или есть способ заставить их работать на OS X?
Функции C, такие как getch(), которые не работают на Mac — могу ли я использовать виртуальную машину Windows, чтобы заставить их работать?
Ответы (1)
Используйте getchar(); Он должен работать.
Но если вы действительно хотите использовать точную функцию, я рекомендую использовать Windows vm или создать свой собственный метод, который реплицирует getch(), и использовать его как библиотеку на вашем Mac/Linux.
person
Zaira Zafar
schedule
18.09.2016
Есть разница между обычным
getchar()
и getch()
WIndows; последний возвращает символ, не дожидаясь ввода возврата, тогда как getchar()
обычно ничего не возвращает, пока не будет введен возврат.
- person Jonathan Leffler; 18.09.2016
Getch() удерживает экран до тех пор, пока не будет введен символ, но не отображает символ, в то время как getchar() также печатает введенный символ на экране.
- person Zaira Zafar; 18.09.2016
Ага; полный набор нюансов сложен, и в Windows также есть
getche()
для повторения символа. Ключ ^ H ^ H ^ H Самый важный момент заключается в том, что getch()
возвращает значение, когда происходит следующее нажатие клавиши, немедленно, даже если нажата не клавиша «возврат» или «ввод», тогда как getchar()
обычно ничего не возвращает до тех пор, пока не будет нажата клавиша. клавиша «возврат» нажата, возможно, после того, как было введено несколько других символов (хотя символы обычно будут отображаться эхом), и будет возвращен первый из введенных символов.
- person Jonathan Leffler; 18.09.2016
Нет ничего, что полностью повторяло бы getch() для mac/linux. Если вы действительно хотите использовать точную функцию, либо сделайте это с помощью виртуальной машины Windows, либо создайте метод, который реплицирует getch(), и используйте его как библиотеку на Mac/Linux.
- person Zaira Zafar; 18.09.2016
Если вы добавите некоторые из этих комментариев (ваших или что-то полезное из моего) к своему ответу, это сделает его более полезным и, вероятно, достойным голосования. В нынешнем виде он слишком лаконичен, чтобы быть по-настоящему полезным.
- person Jonathan Leffler; 18.09.2016
Я отредактировал его. Спасибо за совет.
- person Zaira Zafar; 18.09.2016
getch()
в системе Unix?» — Я постараюсь найти их. - person Jonathan Leffler   schedule 18.09.2016