当前位置: 代码迷 >> C语言 >> 想和大家研究一些问题
  详细解决方案

想和大家研究一些问题

热度:133   发布时间:2008-01-22 22:56:24.0
想和大家研究一些问题
我想在DOS下用C做一个EDIT。
但是,我发现了以下几个我解决不了的问题:
1)我发现图形模式和文本模式没法兼容。
比如我设置了一个窗口,为编辑区,但是我用SETBACKCOLOR时,没有反应。
2)怎么删除一个输入的字符?
我用的是输入一个,显示一个的方法。PRINTF(“%C”,GETCH());
但是删除时,按BACKSPACE时,应该怎么把已经PRINTF上的字符弄掉?
3)BACKSPACE时的换行问题。
我觉得应该是一个很烦琐的函数,想过一些办法,但是都不太好。
暂时就想到这么多,如果再想到,我会再加入的。
希望大家能帮帮我,我想了很久也不得要领。
谢谢大家了。
搜索更多相关的解决方案: 研究  

----------------解决方案--------------------------------------------------------
不太懂,edit应该是用汇编写的,dos6.0源代码里可能有,不过估计也是用中断现实的,我猜的,
有些功能c库不一定都支持吧
----------------解决方案--------------------------------------------------------
抵制TC
----------------解决方案--------------------------------------------------------
首先,您没有搞清楚EDIT使用图形模式干什么?我理解应该用不着。EDIT应该使用conio.h系列函数。
退一步说,假如在图形模式下,那么对于tc来说setbkcolor是图形模式下设置背景色的函数,不是setbackcolor。
图形模式下的背景颜色是用来影响接下来的清除函数的,而不是像你理解那样立刻发生点什么。

接下来就顺理成章了,您既然应该使用conio.h系列函数,那么就不要继续考虑printf了,忘记它吧。
当您读过conio.h以后,您就会依赖于window、gotoxy等等,于是换行什么的问题也就不存在了。
----------------解决方案--------------------------------------------------------
printf("/b /b");可以实现退格

/b是光标前移一格,然后打印一个空格,相当于把这个地方原来的字符删除,这个时候光标又后移了一位,最后在\b一次,光标位置就对了
----------------解决方案--------------------------------------------------------