gpt4 book ai didi

c++ - 在 linux 环境中,如何在 C++ 中将 X 文件作为数字读入 RAM?

转载 作者:太空宇宙 更新时间:2023-11-04 12:18:13 25 4
gpt4 key购买 nike

我正在开发一个压缩程序,它需要将文件作为单个数字读入 RAM,并执行基本的数学运算和位移。我看过 GNU 的 gmp,但它与 c/c++ 的集成很差,我不知道从哪里开始读取并将值放入 mpz_t 变量。

最佳答案

#include <fstream>
#include <gmp.h>
#include <gmpxx.h>
#include <iostream>

using namespace std;

mpz_class fileToNumber (const string& fileName)
{
mpz_class number;
ifstream file(fileName.c_str());
while( file.good() ){
unsigned char c;
file >> c;
number <<= 8;
number += c;
}
file.close();
return number;
}


int main (int argc, char* argv[])
{
if( argc - 1 < 1 ){
cout << "Usage: " << argv[0] << " file.txt" << endl;
return 0;
}
cout << hex << fileToNumber(argv[1]) << endl;
}

编辑:修正了,误解了原来的问题,现在它以数字而不是 ASCII 数字读取文件。

编辑:将整个文件移动到 mpz_class 转换成一个不错的函数。

关于c++ - 在 linux 环境中,如何在 C++ 中将 X 文件作为数字读入 RAM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com