寻求不会到所需的位置
seekp not going to required position
本文关键字:位置 更新时间:2023-10-16
在这个程序中,我想更改文件中的一些值。现在我以追加模式打开文件并将我的 seekp 指针移动到我给定的位置。但问题是它在文件末尾写入数据,而不是在 seekp 指针所在的位置。
#include<iostream>
#include<fstream>
using namespace std;
int main(){
//creates a file for testing purpose.
ofstream fout;
fout.open("test.txt");
fout<<1;
fout<<" ";
fout<<34;
fout<<" ";
fout<<-1;
fout<<" ";
fout<<-1;
fout.close();
//reads the data in the file
ifstream fin;
fin.open("test.txt");
fin.seekg(0,ios::beg);
fin.unsetf(ios::skipws);//for taking whitespaces
char sp;
int item;
fin>>item;
while(!fin.eof()){
cout<<item<<endl;
fin>>sp;//to store whitespaces so that fin can take next value
fin>>item;
}
cout<<item<<endl;
fin.close();
//opening file for editing
fout.open("test.txt",ios::app);
fout.seekp(5,ios::beg);
fout<<3;
fout.close();
return 0;
}
例如,
如果您阅读此参考,您会发现std::ios::app
意味着
在每次写入之前查找到流的末尾
因此,无论您在哪里寻找,所有写入都将在文件末尾完成。
修改文件的最佳方法是将其读入内存,然后将其重写为临时文件,然后将临时文件移动到原始文件上。
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 如何定义更改car类中car位置的方法
- 使用迭代器时如何访问对象在向量中的位置?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 求最大元素位置的分治算法
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 如何将元素添加到向量的字符串位置
- 如何选择在 csv 文件中输出的位置
- 无法打开 fstream C++文件,即使它与 .cpp 位于同一位置
- 如何在特定位置追加 json 文件
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- OpenGL - 在 NDC 中计算位置适用于着色器,但不适用于'regular'程序