读书人

!关于文件边读边写

发布时间: 2012-02-12 17:16:34 作者: rapoo

求助!关于文件边读边写
我的程序需要在读入文件的时候同时判断读入的信息是否合符要求,如果不符合要求的话就得把文件的当前行全部替换为空格,但问题就在于我的程序始终无法正常工作。代码如下:
#include <fstream>
#include <iostream>
using namespace std;

int main()
{
fstream infile( "1.txt ",ios::in &brvbarios::out);
/*******不断读入文件数据*******/
/******………………………………*******/
/*****发现数据不合法,需要将当前行替换******/
char ctemp;
ctemp = '0 ';
while(ctemp != '\n ')
{
infile.put( ' ');
ctemp = infile.get();
}
return 0;
}

程序进入了死循环,无法读入也无法写入(devcpp)或只能不断地往里面写入空格(VC2005).如果删除其中的infile.put( ' ');和ctemp = infile.get();的其中一句,程序就可以正常退出了,但显然这不是我要的结果,还请各位达人赐教,问题究竟出在哪里呢?怎样才能实现我需要的功能呢?(文件存在而且有内容,打开也成功了)

[解决办法]
1、在put前文件指针应该回退一个字节
2、将ctemp = '0 '; 换成ctemp = infile.get();

[解决办法]
文件在读写间要有一个seek操作。
C语言时代就应该知道的知识点。
[解决办法]
同一个指针,
但是需要使用 seekg/seekp 调整指针 ...

读书人网 >C++

热点推荐