ifstream用于打破哈希字符串

时间:2012-12-01 10:11:23

标签: c++ arrays ifstream

您好我想使用ifstream读取散列值的txt文件并将值存储在数组中。

128位散列字符串 另有128个哈希字符串 等

这是我到目前为止所拥有的:

string line;
ifstream myfile ("username.txt");
vector<string> data_arr;
int i = 0;

if (myfile.is_open())
    {
    while (myfile.good())
    {
        getline(myfile, line);          
        data_arr.push_back(line);
        i++;
    }
    myfile.close();
  }
else cout << "Unable to open file";

我怎样才能使数组的每个值都长16个字节?我猜测getline对我来说不起作用,因为散列值可能会让newline标记成为字符的一部分。

无论如何,我希望这是有道理的,(可能不是),因为我在早上5点输入这个。

1 个答案:

答案 0 :(得分:1)

如果哈希是没有换行符号或空格的商店,您可以尝试这样的事情:

std::vector<char> hash(16);
myfile.read(&hash[0], 16);
data_arr.push_back(std::string(hash.begin(), hash.end());

您还需要检查阅读是否成功。