16 linux 程式輸入時退格鍵的問題

2021-07-25 07:34:11 字數 893 閱讀 9554

在程式中經常要與使用者進行互動,最簡單的就是從命令列獲取輸入,通常使用 cin 或者 scanf  來獲取使用者

輸入資訊。但使用者有時候會輸入錯誤,想使用退格鍵刪除重新輸入時,系統往往會將退格鍵也當做使用者的輸入,退格

鍵也會被回顯到螢幕上,因此無法實現我們預期的退格刪除功能。解決辦法如下 :

方法一 :

在程式中新增如下**

system("stty erase ^h");  /* 退格鍵不回顯 */

方法二 :

#include

struct termios term;

if ( tcgetattr(stdin_fileno, &term;) == -1 )

/** term.c_lflag &= ~icanon;

* term.c_lflag |=  icanon;

* term.c_cc 欄位為要設定的具體特殊輸入字元,如c_cc[verase]代表退格鍵

* term.c_cc[verase] = '\b'; 將退格鍵設定為 '\b'

* verase代表向前擦除乙個字元,vintr代表傳送ctrl+c中斷訊號, ctrl+c 的ascii碼為3

* 例如 :term.c_ccvintr = '\t'; 將tab鍵設定為傳送中斷訊號的功能, 取代了ctrl+c

* tcsetattr函式中,第二個引數 :tcsaflush - 傳送了所有輸出後才生效,所有未讀取的資料刪除

* tcsanrain - 立即生效, tcsadrain - 傳送了所有輸出後更改生效

*/term.c_cc[verase] = '\b';   /* 設定'\b' 為退格鍵的 ascii 碼*/

if ( tcsetattr(stdin_fileno, tcsanow, &term) == -1 )

16 Linux計畫任務

crond就是計畫任務,類似於我們平時生活中的鬧鐘。定點執行。1.系統級別的定時任務 臨時檔案清理 系統資訊採集 日誌檔案切割 2.使用者級別的定時任務 定時向網際網路同步時間 定時備份系統配置檔案 定時備份資料庫的資料 root lqz vim etc crontab shell bin bash...

linux整理 16 Linux配置本地YUM源

以centos為例配置本地yum源1 準備乙個http伺服器 2 安裝好了,或者重新安裝完成後,檢查httpd的執行狀態 3 在httpd服務的web目錄中放入rpm庫,比如,將centos安裝光碟中的rpm庫放入 mkdir var www html centos cp r mnt cdrom v...

1 6 Linux中的壓縮命令

一 壓縮 1 壓縮與解壓縮 常用壓縮格式 zip gz bz2 常用壓縮格式 tar.gz tar.bz2 zip壓縮 zip 壓縮檔案名 原始檔 壓縮檔案 zip r 壓縮目錄名 源目錄 壓縮目錄.zip格式解壓縮 unzip 壓縮檔案 解壓縮檔案.gz格式壓縮 gzip 原始檔 壓縮為.gz格式...