c++ - C++ 任何用于从流中读取二进制值的标准库
问题描述
我的意思是说我有一个包含 4 个字节的文件0x2a x00 0x00 0x00
我想去(假设 f 是一个开放的 ifstream)
uint32_t x;
f >> x;
并让 x 包含 42
我知道这不起作用,但它似乎是一件显而易见的事情,令人惊讶的是它不在标准中。例如,显示 ios::binaryio 的打开标志。
建议的事情通常是
f.read(reinterpret_cast<char*>(&x), sizeof(x));
这很丑陋且不安全
解决方案
是否仍然没有从流中读取二进制值的库标准
有两种:C API 和 C++ 一种。
这很丑陋
始终可以将这些调用包装到根据您的需要量身定制的更优雅的界面中。
并且不安全
包装器也可以解决这个问题。
推荐阅读
- android - 如何使用 Rxjava 执行房间交易
- python - 动态创建按钮并分配点击动作
- bash - 仅重试一次命令:当命令失败时(在 bash 中)
- apache-spark - 如何将数据框转换为数据集,将父类的对象引用作为另一个类中的组合?
- node.js - 你能检查一下这段代码的错误吗?(快递、强大、流媒体、视频播放器)
- python - 为什么 Flask 会从项目目录重定向到根目录?
- postgresql - CLUSTER 会将 PostgreSQL 中的索引聚集在一起吗?
- laravel - Laravel 7 419 页面在 POST 方法中过期
- c++ - 将执行循环拆分为多个线程(1-N-1-N-1...)
- python - 函数内部和外部逻辑相同的结果不一致