亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 刪除一個漢字時屏幕上顯示只刪除了半個漢字的問題 [打印本頁]

作者: shencz2000    時間: 2013-12-07 13:24
標(biāo)題: 刪除一個漢字時屏幕上顯示只刪除了半個漢字的問題
本帖最后由 shencz2000 于 2013-12-07 22:24 編輯

有一個用C語言編寫的打字練習(xí)程序,這個程序能夠在linux終端窗口下或者虛擬終端下使用。
運(yùn)行這個程序,輸入一串中文,當(dāng)想刪除一個已經(jīng)輸入的漢字時,出現(xiàn)一個問題:光標(biāo)在屏幕
上顯示刪除了半個漢字,但實(shí)際上刪除了一個漢字。我希望在顯示上是刪除一個漢字,請教一
下,這個問題怎么解決?
作者: hellioncu    時間: 2013-12-07 13:58
不會還是DOS的打字練習(xí)程序吧?
作者: lrita    時間: 2013-12-07 14:23
辦個漢子是什么意思?
如果是圖像的一半,去研究繪圖的部分。
如果是一個亂碼,應(yīng)該是處理\b時,字符串的指針只回退1了吧。
作者: folklore    時間: 2013-12-07 15:59
終端程序的話, 解決方案要取決于終端。
比較通用的方法是清除最后一行,再輸出\r,再輸出最后一行
作者: shencz2000    時間: 2013-12-07 22:32
回復(fù) 3# lrita
關(guān)于半個漢字,是這么回事,比如先輸入了一個漢字“林”,接著按一下退格鍵(<back space>),這時會看到“林”字少了右邊的一半,但左邊的一半還在。

   
作者: max_min_    時間: 2013-12-08 11:11
新手不懂,幫頂!
作者: shan_ghost    時間: 2013-12-09 10:43
這是許多許多年以前的問題了……

解決方案是識別相關(guān)編碼,發(fā)現(xiàn)是漢字編碼,那就每次刪除兩個字符。
漢字編碼的標(biāo)志是:第一個字節(jié)大于127.
作者: shencz2000    時間: 2014-03-02 21:17
本帖最后由 shencz2000 于 2014-03-02 21:18 編輯

回復(fù) 7# shan_ghost
你好,謝謝你的回復(fù)!
能不能說得更詳細(xì)一點(diǎn),這樣我就能夠去修改了。
當(dāng)使用者按下一個鍵的時候,應(yīng)該用什么方法來接收他按下的鍵值?
如何獲取光標(biāo)之前的字符編碼?
如何控制光標(biāo)往回刪除兩個半角字符?


   
作者: shan_ghost    時間: 2014-03-03 14:35
shencz2000 發(fā)表于 2014-03-02 21:17
回復(fù) 7# shan_ghost
你好,謝謝你的回復(fù)!
能不能說得更詳細(xì)一點(diǎn),這樣我就能夠去修改了。


這么問……看來你是直接用的scanf庫函數(shù)?

這里有篇文章可能能幫到你:
http://linuxprograms.wordpress.c ... rint-utf-8-strings/




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2