好的,我已經知道一些人會生氣我問這個問題,因爲已經有這麼多,但我似乎可以看出它的任何意義;你如何在C/C++中獲得即時輸入(單個字符)?我正在慢慢地走向一所古老的學校,「像塞爾達傳說一樣的遊戲」,到目前爲止,這個運動看起來不錯,但即時輸入會讓它變得更好。C/C++即時輸入
林也相信我做錯了char和旁邊的數字,如果任何人都可以幫助我,或提供教程或鏈接,我將非常感激。
另外,當研究'goto'功能時,我發佈了許多人說這是混亂和混亂。是的,這有點耗時,但至少不會讓我感到混亂或混亂。任何人都可以解釋所有的仇恨嗎?
無論如何,抱歉地嘟on着,這是我迄今爲止的代碼,如果我犯了大量的新秀錯誤,隨時可以投入我的工作。
// movement test
#include <iostream>
#include <stdio.h>
int main(void){
char move[101];
one:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n O=== \n ==== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto one;
}
if (*move == 'a') {
goto one;
}
if (*move == 's') {
goto five;
}
if (*move == 'd') {
goto two;
}
two:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n =O== \n ==== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto two;
}
if (*move == 'a') {
goto one;
}
if (*move == 's') {
goto six;
}
if (*move == 'd') {
goto three;
}
three:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==O= \n ==== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto three;
}
if (*move == 'a') {
goto two;
}
if (*move == 's') {
goto seven;
}
if (*move == 'd') {
goto four;
}
four:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ===O \n ==== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto four;
}
if (*move == 'a') {
goto three;
}
if (*move == 's') {
goto eight;
}
if (*move == 'd') {
goto four;
}
five:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n O=== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto one;
}
if (*move == 'a') {
goto five;
}
if (*move == 's') {
goto nine;
}
if (*move == 'd') {
goto six;
}
six:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n =O== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto two;
}
if (*move == 'a') {
goto five;
}
if (*move == 's') {
goto ten;
}
if (*move == 'd') {
goto seven;
}
seven:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==O= \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto three;
}
if (*move == 'a') {
goto six;
}
if (*move == 's') {
goto eleven;
}
if (*move == 'd') {
goto eight;
}
eight:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ===O \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto four;
}
if (*move == 'a') {
goto seven;
}
if (*move == 's') {
goto twelve;
}
if (*move == 'd') {
goto eight;
}
nine:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n O=== \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto five;
}
if (*move == 'a') {
goto nine;
}
if (*move == 's') {
goto thirteen;
}
if (*move == 'd') {
goto ten;
}
ten:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n =O== \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto six;
}
if (*move == 'a') {
goto nine;
}
if (*move == 's') {
goto fourteen;
}
if (*move == 'd') {
goto eleven;
}
eleven:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ==O= \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto seven;
}
if (*move == 'a') {
goto ten;
}
if (*move == 's') {
goto fifteen;
}
if (*move == 'd') {
goto twelve;
}
twelve:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ===O \n ==== \n";
std::cin >> move;
if (*move == 'w') {
goto eight;
}
if (*move == 'a') {
goto eleven;
}
if (*move == 's') {
goto sixteen;
}
if (*move == 'd') {
goto twelve;
}
thirteen:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ==== \n O=== \n";
std::cin >> move;
if (*move == 'w') {
goto nine;
}
if (*move == 'a') {
goto thirteen;
}
if (*move == 's') {
goto thirteen;
}
if (*move == 'd') {
goto fourteen;
}
fourteen:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ==== \n =O== \n";
std::cin >> move;
if (*move == 'w') {
goto ten;
}
if (*move == 'a') {
goto thirteen;
}
if (*move == 's') {
goto fourteen;
}
if (*move == 'd') {
goto fifteen;
}
fifteen:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ==== \n ==O= \n";
std::cin >> move;
if (*move == 'w') {
goto eleven;
}
if (*move == 'a') {
goto fourteen;
}
if (*move == 's') {
goto fifteen;
}
if (*move == 'd') {
}goto sixteen;
sixteen:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ==== \n ===O \n";
std::cin >> move;
if (*move == 'w') {
goto twelve;
}
if (*move == 'a') {
goto fifteen;
}
if (*move == 's') {
goto sixteen;
}
if (*move == 'd') {
goto sixteen;
}
return 0;
}
如何獲取單個字符而不需要返回被按下是平臺相關的。你在寫什麼平臺,或者,在每個角色之後要求回報是否可以接受? – icktoofay
另外,對於'goto's,爲每個位置重複所有的代碼似乎沒有一點混亂嗎? – icktoofay
goto的東西是它讓你閱讀你的代碼非常乏味。爲了理解你的代碼,人們必須多次閱讀它才能遵循流程。這也通常表明缺乏對更好地完成工作的工具的理解。 goto是比其他工具更好的設計選擇的情況很少,如果不是的話。在你的情況下,甚至不清楚你使用goto來完成什麼。我建議你在使用該語言之前不要使用它。那麼你將會「成熟」到足以正確使用它(如果有的話) – ApplePie