0
#include <iostream>
#include <string.h>
#include <fstream>
#include <conio.h>
using namespace std;
int main(int argc, char*argv[])
  {
ifstream fpr;
ofstream fpw;

char * rec1 = "helloWorld";
char * rec2 = "my";
char out1[50];
char out2[50];
fpw.open("sample.txt",ios::in|ios::binary|ios::app);
if(fpw.fail())
{
    cout<<"The file could not be opened!\n";
    exit(1); // 0 – normal exit, non zero – some error
}
fpr.open("sample.txt",ios::out|ios::binary);
if(fpr.fail())
{
    cout<<"The file could not be opened!\n";
    exit(1); // 0 – normal exit, non zero – some error
}
fpw.write(rec1,10);
fpr.read(out1,10);
out1[10] = '\0';
cout<<out1<<"\n";
fpw.seekp(2,ios::beg);
fpw.write(rec2,2);
fpr.seekg(0,ios::beg);
fpr.read(out2,strlen(rec1));

cout<<"\n"<<out2<<"\n";
getch();
   }

使用此代码,我只想将一个名为 'my' 的字符串插入到 'helloworld' 字符串的 2 字节位置。但它没有插入它(即使我正在寻找正确的位置)。谁能帮帮我?

4

1 回答 1

0

从文档上ios::mode

ios::应用程序:

内容为文件的当前内容。此标志只能在为仅输出操作打开的流中使用。所有输出操作都在文件末尾执行,附加

去掉ios::app,你就可以在 `"helloworld"中重写"my"了。"ll"

请注意,您将无法将某些内容“插入”到文件中-实现此目的的唯一方法是从原始文件中读取并将新数据写入新文件[或读取您想要修改后的任何内容,插入您想要的文本,并在修改位后写回您想要的部分]。

于 2013-09-19T22:56:34.183 回答