【发布时间】:2020-11-02 05:05:25
【问题描述】:
我有一个包含 16 位十六进制数字的文件
4eff 0811 0101 0000 0002 etc
我想将它加载到缓冲区中,以便我可以提取信息并执行计算。这是我目前的代码
std::ifstream myfile(filepath);
if (myfile.is_open())
{
std::streampos size = myfile.tellg();
std::vector<uint16_t> buffer;
buffer.resize(size);
for (int i = 0; i < size; i++) {
myfile >> buffer[i];
std::cout << buffer[i] << std::endl;
}
}
else
{
std::cout << "Error: Could not load file" << std::endl;
}
myfile.close();
不幸的是,它不起作用。没有任何内容打印到屏幕上,这是我在运行代码后在终端上收到的警告。
warning C4244: 'argument': conversion from 'std::streamoff' to 'const unsigned int', possible loss of data
【问题讨论】:
-
在哪里您会收到此警告?请edit您的问题在该行添加评论。
-
@Someprogrammerdude 编辑了它
-
不应该输入
>>hex>>buffer[i],因为您正在阅读十六进制?