欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C/C++ 文件读写-简版

程序员文章站 2022-03-23 22:53:40
总结: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 可以直接使用. 挺简单的.

参考:

https://blog.csdn.net/weixin_42831199/article/details/82047874?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.not_use_machine_learn_pai

借图

:C/C++ 文件读写-简版

上代码:

                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

相关标签: C/C++