从文件中读取未签名字符的几种不同方法
several different ways to read unsigned char from file
我想从文件中读取无符号字符并搜索许多不同的执行方式。但我不知道它们工作或不工作的原因。
1. ifstream input(ios::in | ios::binary) //seems to not work, but why?
我已经设置了应该阻止转换的ios::binary
。
阿拉伯数字。 unsigned char buffer[BUFFER_SIZE];
myfile.read((unsigned char *) buffer, BUFFER_SIZE);//error!fail
myfile.read((char *) buffer, BUFFER_SIZE);//work, the data type is unsigned char
为什么我必须将其转换为char*
?存储在数组中的数据不会转换为字符而不是unsigned char
?它在转换过程中做什么?
3. vector
//它有效,但我不知道它做了什么。
对于第一部分,构造函数还需要文件名。例如
ifstream input("myfile.dat", ios::in | ios::binary);
我相信你可以省略ios::in
,因为它是ifstream
的默认值。
对于第二部分,istream::read
需要一个char*
指针(或某种等效类型)。读取数据后,可以将元素转换为unsigned char*
。
read 函数声明了 'char *' 的原型。这正是一些作者在时间迷雾中所做的。这并不意味着任何"转换"都会发生。在任何情况下,都没有从字符 * 到无符号字符 * 的"转换";两者都是指向字节的指针,I/O 类的任何转换语义都将由其他因素控制。
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 有没有一种方法可以在编译时获得作用域类名
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 在C++中,如何通过几种类型从元组中选择多个元素
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- C++ STD 函数运算符:有没有一种方法可以通过函数将一个向量映射到另一个向量上?
- 哪种方法更好,性能明智
- 有没有一种方法可以捕获进程中的堆栈溢出?C++Linux
- 我想直接在结构中插入,但没有一种方法可以正确避免填充问题
- 如何知道C2259 VS 2017错误未实现哪种方法?
- 如何同时运行 2 种方法
- 在 C 中并行化嵌套循环的几种方法之间的差异,C++使用 OpenMP
- 从文件中读取未签名字符的几种不同方法
- 最简单的方法来封装几个语句中的几种语句
- 几种特定方法或一种通用方法
- C ++中的几种分配内存方法有什么区别
- 声明空/默认构造函数的几种方法之间的差异