【发布时间】:2011-10-13 10:36:21
【问题描述】:
我希望使用 OpenSSL 加密文件中的文本,并且在加密之前需要将文本放在无符号字符数组中。从文件读取文本到无符号字符数组的最简单方法是什么?
【问题讨论】:
我希望使用 OpenSSL 加密文件中的文本,并且在加密之前需要将文本放在无符号字符数组中。从文件读取文本到无符号字符数组的最简单方法是什么?
【问题讨论】:
您的问题被标记为 C 和 C++ (不具建设性)。我会给 C++ 一个答案。
#include <fstream>
#include <iterator>
#include <vector>
using namespace std;
int main()
{
ifstream in("filename.txt"); //open file
in >> noskipws; //we don't want to skip spaces
//initialize a vector with a pair of istream_iterators
vector<unsigned char> v((istream_iterator<unsigned char>(in)),
(istream_iterator<unsigned char>()));
...
}
【讨论】:
以您喜欢的任何数据类型阅读它。转换为 (unsigned char*) 保证让您可以访问各个字节。
编辑:这是针对 C 而不是 C++ 的答案。最初这个问题也被标记为 C。
【讨论】:
reinterpret_cast<unsigned char*>。
网上一定有很多关于如何做到这一点的例子。唯一棘手的部分是您几乎肯定需要为数组动态分配内存,以确保您读取的输入不会超过数组的容量。此外,如果您需要处理不适合单个字节数组的大 文件(例如,几 GB 或更大),则需要进行更多研究。
【讨论】: