2011-09-18 71 views
0

這是我用於我的程序中的選項列表的代碼。退出程序..alternative(C語言)

當然,如果選項的數量增加(超過9),我必須改變while條件採取不同的數字。

我想避免的是訴諸兩位數字。

我該如何讓用戶按下'ESC'鍵退出程序?或其他任何按鍵或不同的解決方案,如果任何可用....

while (option < 9) 
    { 
    system("clear"); 

      printf("+------------------------------------------+\n"); 
      printf("| xxxxxxxxxxxxxx    |\n"); 
      printf("+------------------------------------------+\n"); 
      printf("          \n"); 
      printf("********************************************\n"); 
      printf("|   Operations     |\n"); 
      printf("********************************************\n"); 
      printf("| 1) Option 1        |\n"); 
      printf("| 2) Option 2        |\n"); 
      printf("| 3) Option 3        |\n"); 
      printf("| 9) EXIT         |\n"); 
      printf("+------------------------------------------+\n"); 

      printf("Option -->: "); 
      scanf("%d", &option); 

      if (option==1) func1(conn); 
      if (option==2) func2(conn); 
      if (option==3) func3(conn); 
    } 
      mysql_close (conn); 

     system("clear"); 

     exit (EXIT_SUCCESS); 

} 

感謝莫羅

回答

1

讀一個字符,而不是一個int(或更好,但按鍵)。然後,如果讀取的字符在'0''9'之間,則將其轉換爲整數並將其用作選項;否則使您的循環終止,從主返回,調用退出或任何你喜歡的方式來結束執行。

+0

謝謝..我該如何閱讀C中的按鍵?我的目的是製作一個便攜式程序。 – Margherita

+0

@Mauro:它是'fgetc'嗎?不知道,現在一直在做C++很長一段時間...... –

+0

@Mauro不,你不能讀嚴格符合C的ESC便攜版。看看(便攜式)ncurses庫。 – user411313