2013年1月16日 星期三

[ C/C++ 文章收集 ] system("pause") for linux

來源自 這裡 
Preface: 
在windows底下如果不想藉由開發工具做debug時,筆者我多數使用system("pause")這個指令,但是一到了linux之後,這個指令完全無效,因為linux的termainl底下本來就沒有這個指令,面對這樣的問題,網路上有一堆解決方式,這裡提供筆者我自己常用的方法. 

方案一: 
  1. #include   
  2. #define PAUSE printf("Press Enter key to continue..."); fgetc(stdin);  
  3. int main(void)  
  4. {  
  5.     PAUSE  
  6.     printf("system(\"pause\") for linux!\n");  
  7.     return 0;  
  8. }  
可以看到我只是簡單的使用兩個指令來達到一樣的效果,我還用#define給預先定義起來,如此一來我每次要使用只需要打上PAUSE即可。 
當然如果你夠懶的話,就把他寫成header file,以後要使用就載入header file來使用. 

方案二: 
直接產生一個類似pause的程式,然後把他放在 /usr/bin 裡面,pause的實做程式碼如下: 
  1. #include   
  2. void main(void)  
  3. {  
  4.     printf("Press Enter key to continue...");  
  5.     fgetc(stdin);  
  6. }  
如此一來你就可以直接在程式碼裡使用 system("pause");了。 
PS. fgetc() 必須讀到 Enter 的keycode才會終止當下的輸入,如果你要達到完全的任意按鍵就執行下一行,可以參考 [C/C++] getch() for linux.

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...