2007/03/31

用 Java 寫 C 語言的 system pause

C 語言中 stdlib.h 函式庫中有提供一個 system() 函式讓使用者可以直接對作業系統下指令,但是 Java 裡面似乎沒有這類的函式,所以執行文字介面的 Java 程式並沒辦法使用 system("pause") 讓程式暫停。

C 語言中除了用上面的方式暫停,也可以使用 getc() 來等待輸入,所以 Java 可以利用這點來達到暫停的效果。

下面這段程式是以 System.in.read() 函式來等待輸入。

public class wait{

public static void main(String[] args){
System.out.print("Press enter to exit....");
try{
System.in.read();
}catch(Exception e){};
}
}


你也可以使用 Scanner 來接收輸入。

import java.util.Scanner;

public class wait{
public static void main(String[] args){
int a,b;
Scanner input = new Scanner(System.in);
System.out.print("Press enter to exit....");
input.hasNextLine();
}
}


這樣程式要按下 Enter 鍵才會結束關閉。但是這個寫法有個缺點,就是如果按其他的按鍵沒有作用,也就是只能按 Enter 鍵才會結束,其他的則會顯示在螢幕上面直到 Enter 鍵被按下。


6 則留言:

  1. 註冊一個監聽key-in事件的函式看看

    回覆刪除
  2. System.in.read() 和 Scanner.next() 都是負責監聽 key-in 的函式,莫非你話中有話 or 我們的語言不太一樣?

    回覆刪除
  3. 我的意思是說
    JAVA應該有偵測任一鍵值事件的函式
    只要觸發該事件就繼續執行程序

    你說的是監聽回車鍵吧?

    ....回車鍵?

    回覆刪除