从文件读取文本到无符号字符数组,在尝试使用示例时出错
Reading text from file to unsigned char array, errors while trying to use example
我试图使用示例从:
https://stackoverflow.com/a/6832677/1816083但是我有:
invalid conversion from `unsigned char*' to `char*'
initializing argument 1 of `std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::read(_CharT*, std::streamsize) [with _CharT = char, _Traits = std::char_traits<char>]'
invalid conversion from `void*' to `size_t'
行:
size_t bytes_read = myfile.read((unsigned char *) buffer, BUFFER_SIZE);
首先,read()
取char*
而不是unsigned char*
。其次,它不返回读取的字符数。
相反,尝试:
myfile.read((char*)buffer, BUFFER_SIZE);
std::streamsize bytes_read = myfile.gcount();
恕我直言,编译器的输出已经足够了。它告诉你,你想让unsigned char*
发挥作用,等待char*
。顺便说一句,甚至还有一个函数名
std::basic_istream<_CharT, _Traits>::read(_CharT*, std::streamsize)
[with _CharT = char ...
如果需要unsigned chars buffer[ ... ]
,则将其强制转换为char*
unsigned char buffer[ BUFFER_SIZE ];
ifstream myfile("myfile.bin", ios::binary);
if (myfile)
{
myfile.read((char*) buffer, BUFFER_SIZE);
// ^^^^^^^
size_t bytes_read = myfile.gcount();
}
相关文章:
- 文本文件中的单词链表
- 从命令行c++发送文本文件名
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 将文本从一个文件复制到另一个c++流时出错
- OpenGL 将来自 ttf 的渲染器文本与背景纹理组合在一起时出错
- 使用 conio.h 更改文本颜色时出错
- 从文本中抓取句子,将所有句子分别存储在某个数据结构中
- 将字符串从文本文件读取到矢量数组C++时出错
- 从二进制文件中抓取文本时,为什么 xdg_vtnr=8 是我的结果
- C++ 中的列文本抓取
- 视觉对象C++窗体、简单消息框和将文本从文本字段分配给字符串时出错
- 当我尝试在 qTextEdit 中设置文本时出错
- Windows XP在C++中启动时读取文本文件的速度较慢;预取
- 从Windows应用程序的文本框中抓取文本
- 用c++读取和打印文本文件时出错
- PInvoke:从c++返回文本到c#时出错
- 读取文本文件片段并写入boost时出错.asio插座
- 从文件读取文本到无符号字符数组,在尝试使用示例时出错
- 将数字转换为文本时出错