我希望使用OpenSSL加密文件中的文本,并且在加密之前需要将文本放在unsigned char数组中。将文本从文件读取到unsigned char数组的最简单方法是什么?
答案 0 :(得分:9)
你的问题被标记为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>()));
...
}
答案 1 :(得分:3)
以您喜欢的任何数据类型阅读它。强制转换为(unsigned char*)
可以访问各个字节。
编辑:这是C的答案,而不是C ++。最初这个问题也标记为C.
答案 2 :(得分:1)
网上必须有大量关于如何做到这一点的例子。唯一棘手的部分是你几乎肯定需要为数组动态分配内存,以保证你不会读取比数组中更多的输入。此外,如果您需要处理不适合单个字节数组的大型文件(例如,几GB或更大),则需要进行更多研究。