我目前正在制作加密/解密程序。加密后,结果存储在文本文件中,每个字符都存储为十六进制值。我目前正在进行解密,第一阶段是读入该文件,并将每个十六进制值存储为数组中的元素。
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实现我想要的东西吗?
char *fgets(char * restrict s, int n,FILE * restrict stream);
但是你正在向它传递int
..这就是抱怨的原因。它甚至说它正在考虑通过int
类型为char*
但没有提供明确的演员。所以它提出了警告。
您可以先读取char数组中的数字,然后使用strto*
获取转换后的int
。