IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 使用C++的文件流对象读写二进制数据文件 -> 正文阅读

[C++知识库]使用C++的文件流对象读写二进制数据文件

通过在VS2022中创建一个项目,展示通过标准C++的文件流对象读写二进制数据文件。

在VS2022中创建C++空项目,

?

点击“创建”,完成空项目的创建。

在解决方案资源管理器视图中,右键单击项目名、添加、新建项,

添加名为“MyProject.cpp”的文件。

?

在文件中添加如下代码:?

?

#include <iostream>
#include <fstream>

//	定义结构体
#pragma pack (show)	//	编译时以警告4810显示字节对齐个数
#pragma pack (push)
#pragma pack (1)
#pragma pack (show)	//	编译时以警告4810显示字节对齐个数
typedef struct MyStruct
{
	int a;
	char b;
}MyStruct;
#pragma pack (pop)
#pragma pack (show)	//	编译时以警告4810显示字节对齐个数


int main()
{
	std::cout << "Hello!" << std::endl;
	std::cout << "sizeof(MyStruct) is: " << sizeof(MyStruct) << std::endl;
	MyStruct ms;

	//	文件名
	std::string fn = "d:\\temp\\My.dat";
	
	//	向文件中写入二进制数据
	std::ofstream ofs;	
	ofs.open(fn, std::ios::binary | std::ios::out | std::ios::trunc);
	if (ofs.bad()) return -1;
	for (int i = 0; i < 10; i++) {
		ms.a = i + 1;
		ms.b = (i+1) * 10;
		ofs.write((char*)&ms, sizeof(ms));
	}
	ofs.close();

	//	从文件中读取二进制数据
	std::ifstream ifs;
	ifs.open(fn, std::ios::binary | std::ios::in);
	if (ifs.bad()) return -1;
	//	获取文件大小
	std::streampos fSize = 0;
	ifs.seekg(0, std::ios::end);
	fSize = ifs.tellg();
	std::cout << "file size is: " << fSize << "Bytes." << std::endl;
	//	读取并显示数据
	for (ifs.seekg(0, std::ios::beg); ifs.tellg() < fSize; ) {
		ifs.read((char*)&ms, sizeof(ms));
		std::cout << "a: " << ms.a << " . b:" << (int)ms.b << std::endl;
	}
	ifs.close();

	return 0;
}

编译链接后,程序运行结果如下:

从运行结果可以看出,实现了二进制数据读写。?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 11:42:41  更:2022-01-28 11:44:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:19:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码