首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

有关文件的全缓冲设置,该如何解决

2012-02-14 
有关文件的全缓冲设置各位大侠,我想问一个问题:显示在屏幕上的输入之所以可以删除,是因为有缓冲的存在。现

有关文件的全缓冲设置
各位大侠,我想问一个问题:
显示在屏幕上的输入之所以可以删除,是因为有缓冲的存在。
现在我将打开的文件用setbuf()设置为全缓冲,但是当我按下backspace键的时候,然后有方法fputc()写入文件流的时候,在文件中还是出现特殊字符^H,而不是将前一个字符给删除,这是为什么,有什么方法可以做到在文件中删除一个字符(C语言)?

[解决办法]
帮顶!
[解决办法]
> > 显示在屏幕上的输入之所以可以删除,是因为有缓冲的存在。
可以删字符不是因为C有缓冲的原因。标准IO只是调用系统IO,然后做缓存而已。你可以把标准输入设为无缓冲的,或者干脆用系统调用read,还是可以删的。我想应该是控制台提供的某种功能吧。

你想在文件中用,可以给你几个建议:
一、可以自己实现一个类似标准C的缓冲。
二、标准C中有一些其它的IO函数,比如写文件的话,fseek(fp, -1, SEEK_CUR)可以实现类似的功能。
三、重新设计你的代码,减少对删除字符的需求。

热点排行