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

!关于文件边读边写

2012-02-12 
求助!关于文件边读边写我的程序需要在读入文件的时候同时判断读入的信息是否合符要求,如果不符合要求的话

求助!关于文件边读边写
我的程序需要在读入文件的时候同时判断读入的信息是否合符要求,如果不符合要求的话就得把文件的当前行全部替换为空格,但问题就在于我的程序始终无法正常工作。代码如下:    
#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 调整指针 ...

热点排行