我想要做的是读取'.d'二进制文件的内容并将它们存储在一个数组中。 所以我写了以下代码:
void viewFile()
{
unsigned char inFileData[SIZE];
char fileName[SIZE];
int numRead;
FILE *inBinFile;
printf("Enter the file name:");
scanf("%s", fileName);
inBinFile = fopen( fileName, "rb");
if(( inBinFile = fopen(fileName, "rb")) == NULL )
{
fprintf( stderr, "Error opening %s\n", fileName );
clearStdin();/*a function to clear stdin*/
mainMenu();/*a function to prompt user input*/
}
numRead = fread( inFileData, sizeof(unsigned char), SIZE, inBinFile );
inFileData[SIZE] = '\0';
printf("U coded data:\n%s\n", inFileData);
printf("%d\n", numRead);
fclose(inBinFile);
return;
}
输出是一堆难以理解的垃圾。哪个部分我做错了?我不明白。
另外,我写了我的clearStdin函数如下:
void clearStdin(void)
{
scanf("%*[^\n]");
scanf("%*1[\n]");
return;
}
编译器报告没有错误,但不知何故,函数调用似乎没有完全按照我想要的方式工作。它确实清除了stdin,但是在调用此函数的地方总会出现错误,例如,mainmenu函数提示用户输入。
请帮忙!!提前谢谢。
答案 0 :(得分:2)