【发布时间】:2016-04-05 06:04:57
【问题描述】:
我在使用 seekp 和 seekg 函数时没有得到正确的输出,而另一方面,当我使用 ios::app 进行追加时,程序运行良好。我应该如何使用 seekg() 和 seekp() 函数来追加文件?
#include<iostream.h>
#include<conio.h>
#include<fstream.h>
void main()
{ clrscr();
ofstream out;
out.open("MJ");
char data[100];
cout<<"\nEnter data: ";
cin.getline(data,100);
out<<data;
out.close();
ifstream in;
in.open("MJ");
in>>data;
cout<<data;
in.close();
out.open("MJ");
cout<<"\nEnter data: ";
cin.getline(data,100);
out.seekp(2);
out<<data;
out.close();
in.open("MJ");
in>>data;
cout<<data<<endl;
getch();
}
【问题讨论】:
-
您可以使用
std::ios::ate代替std::ios::app打开文件,文件指针已经位于文件末尾(但不是在追加模式下)。也许向我们展示你做了什么,我们可以看到你哪里出错了? -
您可以尝试创建一个Minimal, Complete, and Verifiable Example 并告诉我们吗?
-
编辑了问题:这就是我希望程序工作的方式,它需要第一个文本说“ava”,然后它需要文本作为“cardo”输出应该是“avacardo”
-
@Galik 我只想使用文件指针 seekg 和 seekp。