【发布时间】:2020-06-19 19:41:29
【问题描述】:
我有一个简单的程序,我正在尝试将字节模式的十六进制值序列写入以下格式的文本文件:
任意数据表示
3f 42 5c b8 d9 0a // etc...
这是我的程序。
int main() {
char digits[] = { 0x7e, 0x30, 0x6d, 0x79, 0x33, 0x5b, 0x5f, 0x70, 0x7f, 0x7b };
std::fstream file;
file.open("display.txt", std::ios::out);
// Ones place
for (int val = 0; val <= 255; val += 1)
file << std::hex << digits[val % 10] << " ";
file << std::endl;
// Tens place
for (int val = 0; val <= 255; val += 1)
file << std::hex << digits[(val / 10) % 10] << " ";
file << std::endl;
// Hundreds place
for (int val = 0; val <= 255; val += 1)
file << std::hex << digits[(val / 100) % 10] << " ";
file << std::endl;
// Sign digit
for (int val = 0; val <= 255; val += 1)
file << std::hex << 0 << " ";
file << std::endl;
// Ones Place Twos Complement
for (int val = -128; val <= 127; val += 1)
file << std::hex << digits[abs(val) % 10] << " ";
file << std::endl;
// Tens Place Twos Complement
for (int val = -128; val <= 127; val += 1)
file << std::hex << digits[abs(val / 10) % 10] << " ";
file << std::endl;
// Hundreds Place Twos Complement
for (int val = -128; val <= 127; val += 1)
file << std::hex << digits[abs(val / 100) % 10] << " ";
file << std::endl;
// Sign Digit Twos Complement
for (int val = -128; val <= 127; val += 1) {
if (val < 0)
file << std::hex << 01;
else {
file << std::hex << 00;
}
file << " ";
}
file << std::endl;
file.close();
return 0;
}
但是,在我运行程序并打开我的文本文件后,它显示为好像它是二进制文件...我不确定我做错了什么、遗漏了什么或忽略了什么。
这是我的文本文件的样子:
⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾‰‰‰‰‰‰‰‰‰‰⁹⁹⁹⁹⁹⁹⁹⁹⁹⁹″″″″″″″″″″⁛⁛⁛⁛⁛⁛⁛⁛⁛⁛ ⁰⁰⁰⁰⁰⁰⁰⁰⁰⁰ⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾‰‰‰‰‰‰‰‰‰‰⁹⁹⁹⁹⁹⁹⁹⁹⁹⁹″″″″″″″″″″⁛⁛⁛⁛⁛⁛⁛⁛⁛⁛ ⁰⁰⁰⁰⁰⁰⁰⁰⁰⁰ⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾‰‰‰‰‰‰‰‰‰‰⁹⁹⁹⁹⁹⁹⁹⁹⁹⁹″″″″″″″″″″⁛⁛⁛⁛⁛⁛⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾⁻ⁿ⁰ ⁛″⁹‰⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰ⁿ⁻⁾‰⁹″⁛ ⁰‰‰‰‰‰‰‰‰‰‰⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻ⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿ⁰⁰⁰⁰⁰⁰⁰⁰⁰⁰ ⁛⁛⁛⁛⁛⁛⁛⁛⁛⁛″″″″″″″″″″⁹⁹⁹⁹⁹⁹⁹⁹⁹⁹‰‰‰‰‰‰‰‰‰‰⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾‰‰‰‰‰‰‰‰‰‰⁹⁹⁹⁹⁹⁹⁹⁹⁹⁹″″″″″″″″″″⁛⁛⁛⁛⁛⁛⁛⁛⁛⁛ ⁰⁰⁰⁰⁰⁰⁰⁰⁰⁰ⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿ⁻⁻⁻⁻⁻⁻⁻⁻⁻⁻⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾⁾‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‱‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰
它甚至没有从std::endl 打印新行。
编辑
我一直在做一些测试;我怀疑它与数组的类型结合std::hex...
我在使用 char、unsigned char、std::uint8_t 和 std::int8_t 时得到这个二进制转储,但是,如果我使用 short、int、unsigned int、std::uint16_t 或std::int16_t 它似乎正在打印出十六进制值...
当使用不是char 类型的integral 类型时...我得到这个输出:
7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b
7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 30 30 30 30 30 30 30 30 30 30 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 79 79 79 79 79 79 79 79 79 79 33 33 33 33 33 33 33 33 33 33 5b 5b 5b 5b 5b 5b 5b 5b 5b 5b 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 70 70 70 70 70 70 70 70 70 70 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7b 7b 7b 7b 7b 7b 7b 7b 7b 7b 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 30 30 30 30 30 30 30 30 30 30 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 79 79 79 79 79 79 79 79 79 79 33 33 33 33 33 33 33 33 33 33 5b 5b 5b 5b 5b 5b 5b 5b 5b 5b 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 70 70 70 70 70 70 70 70 70 70 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7b 7b 7b 7b 7b 7b 7b 7b 7b 7b 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 30 30 30 30 30 30 30 30 30 30 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 79 79 79 79 79 79 79 79 79 79 33 33 33 33 33 33 33 33 33 33 5b 5b 5b 5b 5b 5b
7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 7b 7f 70 5f 5b 33 79 6d 30 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70 7f 7b 7e 30 6d 79 33 5b 5f 70
6d 6d 6d 6d 6d 6d 6d 6d 6d 30 30 30 30 30 30 30 30 30 30 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7b 7b 7b 7b 7b 7b 7b 7b 7b 7b 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 70 70 70 70 70 70 70 70 70 70 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5b 5b 5b 5b 5b 5b 5b 5b 5b 5b 33 33 33 33 33 33 33 33 33 33 79 79 79 79 79 79 79 79 79 79 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 30 30 30 30 30 30 30 30 30 30 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 30 30 30 30 30 30 30 30 30 30 6d 6d 6d 6d 6d 6d 6d 6d 6d 6d 79 79 79 79 79 79 79 79 79 79 33 33 33 33 33 33 33 33 33 33 5b 5b 5b 5b 5b 5b 5b 5b 5b 5b 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 70 70 70 70 70 70 70 70 70 70 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7b 7b 7b 7b 7b 7b 7b 7b 7b 7b 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 30 30 30 30 30 30 30 30 30 30 6d 6d 6d 6d 6d 6d 6d 6d
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
我认为这可能会解决我自己的问题,但我仍然想知道为什么我会得到使用 char 类型和 std::hex 的输出...
【问题讨论】:
-
“字符和字符串参数(例如,char 或 const char* 类型)由 operatoren.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt
-
en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt2 "在构造并检查哨兵对象后,插入字符 ch。"所以在
char或unsigned char上调用<<只会将char输出到流中。根本不咨询basefield(std::hex修改)。 -
如果您想为
char或unsigned char类型使用类似整数的ostream& <<重载,则需要将其称为file.operator<<('c') -
@John 这似乎是有道理的。有时,您会忘记或忽略一些简单的事情。我在这个简单的东西上摇了将近半个小时......然后我突然想到尝试不同类型的相同程序......
-
我还在摸不着头脑,为什么你会在输出中得到那些非 ascii 字符。 0x7e 是
~。第一个字符应该是~。
标签: c++ hex text-files fstream