2013-04-26 69 views
-1

我似乎無法讓我的鍵盤接受輸入,我不知道爲什麼。我沖洗了緩衝區(或者我認爲我做了),我得到的只是BCS。從鍵盤沒有int輸入c

這是我的菜單功能

//Menu 
int menu() { 
    int choice; 

    do { 
     printf("1)Move\n2)Display Maze\n3)Peek ahead\n"); 
     scanf("%i", &choice); 
     while(getchar() != '\n');  
    } while(choice<=0 && choice>3); 

    return choice; 
}//end menu 

這是我的主。我先打印迷宮出來,然後顯示菜單

printMaze(maze); 
do 
{ 
    choice = menu();  
    if(choice == 1) 
    { 
     //direction = readDirection(); 
     //move(maze, direction); 
     printf("Hi\n"); 
    }// end choice 

    else if(choice ==2) 
     //displayMaze(maze); 
     printf("Hello\n"); 
    else 
     //peek(maze); 
     printf("Goodbye\n"); 

} while(choice!=4);//hag doesn't kill me or i find the exit) 
+1

什麼是* BCS *? 。 。 。 – 2013-04-26 02:49:13

+0

@luserdroog閃爍的光標綜合症.....我在菜單顯示結束時縮小了它的位置。它實際上並沒有達到任何下面的代碼,但我不知道我在做什麼錯誤 – kevorski 2013-04-26 02:51:09

+0

使用%d而不是%i ..參考http://bytes.com/topic/c/answers/484622-difference-between-scanf-i-scanf-d-maybe-bug-invs2005 – Mullaly 2013-04-26 02:51:39

回答

0

是什麼操作系統您使用..,如果你嘗試重新安裝的Turbo C++編譯器和重新配置「TC」目錄的Windows版本。

+0

這是一條評論/問題而不是答案。另外,OP是否提及Turbo C++(對不起,如果我沒有看到)? – jogojapan 2013-04-26 03:19:44

+0

我其實是想通了。我的老師哈哈有一段代碼丟失了。但我使用的是Ubuntu 12.04 i386 – kevorski 2013-04-26 03:27:33

+0

@jogojapan:「我似乎無法讓我的鍵盤接受輸入,我不知道爲什麼,我沖洗了緩衝區(或者我認爲我做了) m得到的是BCS。 這是我的菜單功能「turbo C++在這個定義中在哪裏? – 2013-04-27 05:06:43

0

我不是很了對C,但....

你不應該掃描輸入「內部」 While循環?

while(getchar() != '\n'); 
    scanf("%i", &choice); 
}while(choice<=0 && choice>3); 
0

choice<=0 && choice>3 - >choice<=0 || choice>3

choice!=4 // 1 < = choice < = 3,永不choice == 4