C++读入文件并按16进制 以文本形式输出
时间: 2023-08-12 17:23:44 浏览: 640
读16进制的文件
5星 · 资源好评率100%
假设你要读入的文件名为 `input.txt`,并且要将文件内容按照 16 进制输出成文本文件 `output.txt`,你可以使用以下代码:
```c++
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main() {
ifstream infile("input.txt", ios::binary | ios::in);
ofstream outfile("output.txt", ios::out);
outfile << hex << setfill('0');
char c;
while (infile.get(c)) {
outfile << setw(2) << (unsigned int)(unsigned char)c << " ";
}
infile.close();
outfile.close();
return 0;
}
```
首先,我们使用 `ifstream` 打开输入文件 `input.txt`,使用 `ofstream` 创建输出文件 `output.txt`。我们使用 `ios::binary` 标志打开输入文件,以便处理二进制文件。我们还使用 `hex` 和 `setfill` 函数将输出流设置为 16 进制,并将填充字符设置为 `'0'`。
接下来,我们使用一个 while 循环读取输入文件中的每个字符,并将其转换为 16 进制字符串写入输出文件中。我们使用 `setw` 函数来设置输出字符串的宽度为 2,以确保每个字符都用两个十六进制数字表示。我们使用 `static_cast<unsigned int>(static_cast<unsigned char>(c))` 将字符转换为无符号整数值,以便在输出流中正确地表示二进制值。最后,我们关闭输入和输出文件。
执行完毕后,你将得到一个 `output.txt` 文本文件,其中包含输入文件中每个字节的十六进制表示。
阅读全文