【发布时间】:2014-12-11 21:42:21
【问题描述】:
我无法将 const char 转换为 byte。我正在使用 ifstream 读取文件,它将内容作为字符串提供,然后我使用 c_str(); 将字符串转换为 const char;然后尝试将其插入字节数组以进行数据包发送。我是 C++ 新手,不明白我必须如何将 char 转换为 byte,需要你们的帮助。这是我的一段代码,请给我一些建议
byte buf[42];
const char* fname = path.c_str();
ifstream inFile;
inFile.open(fname);//open the input file
stringstream strStream;
strStream << inFile.rdbuf();//read the file
string str = strStream.str();//str holds the content of the file
vector<string> result = explode(str,',');
for (size_t i = 0; i < result.size(); i++) {
buf[i] = result[i].c_str(); // Here is Error
cout << "\"" << result[i] << "\"" << endl;
}
system("pause");
这是我从文件中获取的数据:(0x68,0x32,0x01,0x7B,0x01,0x1F,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00)
【问题讨论】:
-
这个
byte类型是如何定义的?它不是标准 c++ 的一部分... -
您正在尝试将指向字符串的指针存储在字节数组中。 1 个字节不能容纳整个字符串。我不确定您要做什么。
-
byte不是 C++11 的标准类型。你是说int8_t 吗? -
我正在从 php 代码创建十六进制值,然后我将其保存到文件中,然后我使用 C++ 代码打开此文件并希望将此十六进制值分配给字节数组,是的,我知道我做错了,但我不知道我必须如何正确地做=/
-
您阅读的文件是否包含文本“0x68 ...”,即字母“0”后跟字母“x”等,就像您在编辑器中看到的那样? (这会使文件大小>60。)或者它是否包含大约 15 个字节,第一个字节的值为 0x68?