【发布时间】:2015-07-27 06:53:17
【问题描述】:
我正在尝试使用 fstream 来尝试同时读取和写入。我读了第一行,然后写了文件的最后一句。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
int pos1=0,pos2=0;
string cadFile;
fstream fs("ejemplo.txt");
do{
fs.seekg(pos1,ios::beg);
getline(fs,cadFile);
pos1=fs.tellg();
fs.seekp(pos2,ios::end);
fs<<cadFile;
pos2=fs.tellp();
cout<<pos1<<"-"<<pos2<<"-"<<cadFile<<endl;
}while(!fs.eof());
fs.close();
system("pause");
return 0;
}
我认为程序是正确的,但是文件在我添加到文件末尾的行之间有一些空格(抱歉,我的声誉很低,我无法上传文件的图像)。
另一方面,我第一次尝试使用 fstream 创建文件,但这是不可能的,文件必须在使用之前存在。我该怎么办?。使用 ifstream 和 ofstream,如果文件不存在,程序可能会创建文件,但我遇到的问题是 fstream。
【问题讨论】:
-
如果
ifstream和ofstream有效,你为什么不使用它们? -
是的,我可以使用它,但是当 fstream 可以同时读取和写入时,我必须创建两个对象。而且我不知道当我想在同一个文件中读写时是否会起作用。我认为我需要为此使用 seekp 和 seekg。
-
这是解决方案: