我想问一下C ++中是否有一个方法来转换带有六位数的.txt文件,例如
0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 69 73 20 70 72
到一个新的.txt看起来
\x0E\x1F\xBA\x0E\x00\xB4\x09\xCD\x21\xB8\x01\x4C\xCD\x21\x54\x68\x69\x73\x20\x70\x72"
我在谷歌中搜索了答案,但没有找到任何内容,并在C ++中尝试了一个脚本但是没有使用错误消息" 24 11 \ x使用没有后续的十六进制数字"
#include <iostream>
#include <fstream>
#include<vector>
using namespace std;
int main()
{
string hexaEnter;
ifstream read;
ofstream write;
write.open ("newhexa.txt",std::ios_base::app);
read.open("hexa.txt");
while (!read.eof() )
{
read >> hexaEnter;
write << "\x" + hexaEnter;
}
write.close();
read.close();
system("pause");
return 1;
}
答案 0 :(得分:1)
write << "\x" + hexaEnter;
// ^^
这里,C ++看到十六进制转义序列的开头,如\x0E
或\x1F
,但它找不到实际的十六进制值,因为你没有提供任何值。
那是因为你想要做的事情是字面上写下字符\
和字符x
,所以请使用反斜杠来实现这一点:< / p>
write << "\\x" + hexaEnter;
// ^^^