C/C++ 文件读写-简版
程序员文章站
2022-06-24 18:55:48
总结:ofstream 一般用于输出操作, ifstream 一般用于读入操作, 修改文件的话, 原来一直这俩配合着用.发现父类 fstream 可以直接使用. 挺简单的.参考:https://blog.csdn.net/weixin_42831199/article/details/82047874?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.not_use_machine_learn...
总结:
ofstream 一般用于输出操作, ifstream 一般用于读入操作, 修改文件的话, 原来一直这俩配合着用.
发现父类 fstream 可以直接使用. 挺简单的.
参考:
借图
:
上代码:
std::cout << "path : ";
std::string path;
std::cin >> path;
//先读取8个字节修改
uchar data[DZSIZE] = { 0 };
std::ifstream fin(path, ios::binary | ios::in);
fin.seekg(DZSIZE, ios::beg);
fin.read((char*)data, DZSIZE);
fin.close();
//前8位取反
for (int k = 0; k < DZSIZE; k++)
{
data[k] = 255 - data[k];
}
//ios::in 保证打开文件的同时可以进行读写操作
std::ofstream fout(path, ios::binary | ios::in);
//末尾检查总的文件大小
fout.seekp(0, ios::end);
size_t totalsize = fout.tellp();
//跳至开头
fout.seekp(DZSIZE, ios::beg);
fout.write((const char *)data, DZSIZE);
fout.close();
fstream dzfile(path, ios::binary | ios::in | ios::out);
dzfile.seekg(0, ios::end);
int size1 = dzfile.tellg();
dzfile.seekp(0, ios::end);
int size2 = dzfile.tellp();
dzfile.seekg(DZSIZE, ios::beg);
dzfile.read((char*)data, DZSIZE);
dzfile.seekp(DZSIZE, ios::beg);
dzfile.read((char*)data, DZSIZE);
//前8位取反
for (int k = 0; k < DZSIZE; k++)
{
data[k] = 255 - data[k];
}
dzfile.seekg(DZSIZE, ios::beg);
dzfile.write((const char *)data, DZSIZE);
dzfile.seekp(DZSIZE, ios::beg);
dzfile.write((const char *)data, DZSIZE);
dzfile.close();
本文地址:https://blog.csdn.net/u010477528/article/details/110223427