Я провел последние пару недель, работая над приложением, которое в основном полагается на функцию getch (), затем я недавно решил обновить Visual Studio только для того, чтобы узнать, что моя программа полностью повреждена и больше не работает.
Вот простой пример того, что у меня есть:
main(){
while (1){
//The program loops until 's' is pressed (this still works)
com=getch();
if(com=='s'){
//The program used to stop here and wait for input (now it doesn't)
com=getch();
if(com=='d') printf("Victory!\n");
else break;
}
}
}
* Это не часть моей программы, это просто пример, который требует нажать 's', а затем 'd', чтобы выиграть
Теперь, это работало до того, как я обновился, я знаю, потому что я потратил более 50 часов, работая над программой, и она работала следующим образом:
Программа дойдет до getch () и будет ждать моего ввода, если я нажму 's', то if вызовет выполнение функции, а затем достигнет второго getch () и дождется моего ввода, так что вы нажмите «d» и выиграйте!
Суть в том, что раньше каждый вход getch () ждал моего ввода!
Но теперь, новое обновление ждет первого getch (), но complitley игнорирует второе, что хорошо завершает программу, и выиграть невозможно.
Может быть, я что-то сделал, может быть, теперь getch () незаконен, я не знаю, уж несчастен, я не знаю, что делать ...
В любом случае, спасибо заранее, если вам нужно что-то узнать, не стесняйтесь спрашивать. Я новичок в программировании, поэтому не ожидайте ответов высокого уровня!
Edit:
Я потратил еще несколько часов на изучение кода:
#include <conio.h>
#include <stdio.h>
main(){
char com;
while(1){
com=getch();
printf("You pressed: %c\n",com);
}
}
Here are the results:
You pressed: d
You pressed:
You pressed: s
You pressed:
You pressed: a
You pressed:
Входными данными были 'd', 's' и 'a'.