私がやりたいのは、「。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はクリアされましたが、この関数が呼び出された場所、たとえばユーザー入力を促すメインメニュー関数の直後には常にエラーが発生します。
助けてください!!前もって感謝します。