2010-04-22 44 views
1

我很難解決這個問題。基本上我的程序有一個標準的輸入,我想修改這個,所以如果用戶輸入一個空格,它會自動用/輸入一個空格來替換它。我不知道我怎麼會這麼做,或者甚至有可能,所以我很感激任何幫助。在C++中輸入時自動改變字符?

+0

這是可能的,但將需要一個潛在的平臺特定的庫,所以這將有助於指定您正在編程的操作系統。 – 2010-04-22 01:20:44

+0

標準輸入僅表示文字。如果你不能對文本文件做同樣的事情,那麼你不能單獨使用標準輸入。 – zneak 2010-04-22 01:26:22

回答

1

您需要關閉輸入字符的回顯,然後在驗證它們後自己回顯它們,根據需要替換字符。對於不同的操作系統(例如Linux和Windows),有不同的方法可以做到這一點,甚至更不幸的是,這可能意味着控制整個屏幕只是爲了這個簡單的功能,因爲退格鍵/刪除鍵需要正確處理(如果需要,甚至可以在多行上)。簡而言之,在控制用戶期望的通用功能的同時,您將遠離用戶的控制權,這使得事情變得相當困難,因爲您無法知道某些終端的行爲,更不用說區域設置的問題。只需在收到輸入後自行替換字符或發出錯誤消息,這取決於您的目的和特定使用情況。

編輯:PDCurses是跨平臺的,所以你可以試試,如果你還有興趣。這比編碼特定平臺更容易。

+0

感謝您的幫助球員。一些非常好的信息。會給它一個去,讓你知道我如何得到:)。 – user319940 2010-04-22 01:49:41

2

我相信如果你想在控制檯上這樣操作文本,你需要一個庫,比如ncurses。