从文件读取文本到unsigned char数组

时间:2011-07-26 13:44:05

标签: c++ arrays file char

我希望使用OpenSSL加密文件中的文本,并且在加密之前需要将文本放在unsigned char数组中。将文本从文件读取到unsigned char数组的最简单方法是什么?

3 个答案:

答案 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或更大),则需要进行更多研究。