printf出力不調?
学校の授業で作成しているプログラムです。
#include <stdio.h>
#include <string.h>
// *********************************
// メインプログラム
// *********************************
int main()
{
FILE *fp;
char fname[256]; //ファイルの内容, ファイル名
int i = 0, Mmemory[16], k, j, cut = 0;
//指定ファイル名の取得
printf(">>圧縮または解凍するファイルを指定してください。\n>>例) C:\Documents and Settings\jibun\デスクトップ\圧縮.txt\n>>ファイルの場所:");
gets(fname);
//ドラックアンドドロップか確認
while(fname[i] == '"'){
i = 1;
}
//ドラックアンドドロップだった時の処理
if(i > 0){
//最後の”を削除
i = 0;
while(fname[i] != '\0'){
i++;
}
i -= 1;
fname[i] = fname[i+1];
//最初の”を削除
for(i = 0; fname[i] != '\0'; i++){
fname[i] = fname[i+1];
}
}
// このソースを表示
fp = fopen( fname, "rb" );
if ( fp == NULL ) {
printf( "%s\n", "入力ファイルのオープンに失敗しました" );
return 1;
}
char buffer[16+2];
int size,ret;
// ファイルサイズの取得
fseek( fp, 0, SEEK_END );
size = ftell( fp );
// ファイルポインタを先頭に戻す
fseek( fp, 0, SEEK_SET );
printf( "FileSize = %d\n\n", size );
while( !ferror( fp ) ) {
// 1バイト * 16 の読込み
ret = fread( buffer, 1, 16, fp );
if ( ret == 0 ) {
break;
}
buffer[ret] = 0x00;
// 16進数の表示
for( i = 0; i < strlen(buffer); i++ ) {
k = (0x000000ff & *(buffer+i));
Mmemory[cut] = k;
cut++;
}
}
fclose( fp );
printf("chak1\n"); //これ以降が表示しません。
cut -= 1;
for(i = 0; i < cut; i++)
printf("%02X ",Mmemory[i]);
return 0;
}
なぜか、最後のwhile後の出力が行えません。
分かる方は教えてください!!