关于回写文件,出错

thb28 2005-11-28 09:52:36
我先用ifsream一行行读出1.txt的内容,一行行存到str[]数组中,对str[]做相应的修改,想把文件覆盖重写,为什么为出错?
程序如下

#include<iostream>
#include<fstream>
#include<string>
using namespace std;

int main()
{

string a[]={"123","234","345"};
int index = 3;

ifstream infile("1.txt");
ofstream outfile("2.txt");
string temp[100];
int line = 1;
string str[10000];
int first,last;
while(getline(infile,str[line]))
{
line++;
}

for(int i = 0; i < line ; i++)
{
if(str[i].find("length($CONTROL_FILE)") != -1)
first = i;
if(str[i].find("$TX_DATE = substr $CONTROL_FILE,length($CONTROL_FILE)-12,8;")!=-1)
last = i;


}

int index1;

for( i = 0; i < index;i++)

temp[i] = a[i];

for( i = 0; i<line - last; i ++)
temp[i+index] = str[last+i+1];



for( i = first ; i <=last; i++)
str[i] = "";


for( i = 0; i<=index+line-last; i ++)
{str[i+first] = temp[i];
index1 = i;


}

infile.close();

for(i=0; i <index1+first; i++)
outfile<<str[i]<<endl;






return 1;

}

...全文
120 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
skynish 2005-11-28
  • 打赏
  • 举报
回复
关注中。。。。。。
thb28 2005-11-28
  • 打赏
  • 举报
回复
那该怎么做呢,楼上的?
liliang800207 2005-11-28
  • 打赏
  • 举报
回复
你读完文件时 文件的指针已经到了文件的末尾!!
把文件指针指向文件头 就应该可以了把
thb28 2005-11-28
  • 打赏
  • 举报
回复
上面原程序发错了,应该是
#include<iostream>
#include<fstream>
#include<string>
using namespace std;

int main()
{

string a[]={"123","234","345"};
int index = 3;

ifstream infile("1.txt");
ofstream outfile("1.txt");
string temp[100];
int line = 1;
string str[10000];
int first,last;
while(getline(infile,str[line]))
{
line++;
}

for(int i = 0; i < line ; i++)
{
if(str[i].find("length($CONTROL_FILE)") != -1)
first = i;
if(str[i].find("$TX_DATE = substr $CONTROL_FILE,length($CONTROL_FILE)-12,8;")!=-1)
last = i;


}

int index1;

for( i = 0; i < index;i++)

temp[i] = a[i];

for( i = 0; i<line - last; i ++)
temp[i+index] = str[last+i+1];



for( i = first ; i <=last; i++)
str[i] = "";


for( i = 0; i<=index+line-last; i ++)
{str[i+first] = temp[i];
index1 = i;


}

infile.close();

for(i=0; i <index1+first; i++)
outfile<<str[i]<<endl;






return 1;

}

thb28 2005-11-28
  • 打赏
  • 举报
回复
好心人帮帮忙哦

64,641

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧