gpt4 book ai didi

c++ - 使用流读取文件

转载 作者:行者123 更新时间:2023-11-27 23:27:00 25 4
gpt4 key购买 nike

我想逐字节读取文件。但是我的程序在第一个 while

中断了
 ifstream infile("new.pdf",ifstream::binary);
ofstream outfile("file.pdf",ofstream::binary);
char *c;
while(infile.read(c,sizeof(char)))
{
mpz_t M;
mpz_t K;
mpz_init2(M,10);
mpz_set_ui(M,(int)c);
mpz_init2(K,10);
mpz_powm(K,M,e,n);
char *x;
mpz_get_str(x,10,K);
outfile.write(x,sizeof(char));
}

infile.close();
outfile.close();
system("pause");
infile.open("file.pdf",ifstream::binary);
outfile.open("newt.pdf",ofstream::binary);
while(infile.read(c,sizeof(char)))
{
mpz_t C;
mpz_t K;
mpz_init2(K,10);
mpz_init2(C,10);
int x=(int)c;
mpz_set_ui(K,x);
mpz_powm(C,K,d,n);
char *s;
mpz_get_str(s,10,C);
outfile.write(s,sizeof(char));
}
infile.close();
outfile.close();

有什么问题?

我需要加密文件然后加密它。所以我决定从输入文件中读取字节,对其进行加密并写入另一个文件。

最佳答案

您将未初始化的指针传递给读取函数,这是未定义的行为。

char *c;  // this points off in space or who knows where
while(infile.read(c,sizeof(char))) // therefore, this is undefined behavior

试试这个:

char c;
while(infile.read(&c,sizeof(char)))

关于c++ - 使用流读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8584174/

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