C语言:从文件读取十六进制以填充数组

问题描述 投票:0回答:1

我目前正在制作加密/解密程序。加密后,结果存储在文本文件中,每个字符都存储为十六进制值。我目前正在进行解密,第一阶段是读入该文件,并将每个十六进制值存储为数组中的元素。

FILE * decryptIn = fopen("output.txt", "r");
fseek(decryptIn, 0L, SEEK_END); //counts the amount of bytes from start to end of file
int fileSize = ftell(decryptIn); //stores the size of the file in bytes
rewind(decryptIn); //sets offset back to 0 (back to start of file)

int *decryptHexArray = malloc(sizeof(int)*5*fileSize);
int currentPointer;
int counter = 0;

while(fgets(decryptHexArray[counter], fileSize, decryptIn)) //loop that reads each string from the file
{
    counter++;
}

我得到的错误信息是

传递'fgets'的参数1使得整数指针没有强制转换

有可能用fgets实现我想要的东西吗?

c hex fgets
1个回答
3
投票

char *fgets(char * restrict s, int n,FILE * restrict stream);但是你正在向它传递int ..这就是抱怨的原因。它甚至说它正在考虑通过int类型为char*但没有提供明确的演员。所以它提出了警告。

您可以先读取char数组中的数字,然后使用strto*获取转换后的int

© www.soinside.com 2019 - 2024. All rights reserved.