テキストファイルの内容を読み出すことを試していた際、改行を検出した時点でそこにヌル文字を代入するという処理を行おうと思ったのですが、うまくいきません。
具他的に言うと、
void draw_block(){
int fp, size=0, p_posi=0;
char String[256];
//ファイルを開く
fp = FileRead_open( "haiti.txt" ) ;
for(int i=0; i<100; i++){
String=FileRead_getc(fp);
DrawFormatString( 10*i, 100, color_white, "%c", String) ;
//String[3]='\0';
if(String=='\n'){
String='\0';
break;
}
}
size=FileRead_size( "haiti.txt" ) ;
p_posi=FileRead_tell( fp ) ;
// 画面に描画
DrawFormatString( 0, 0, color_white, "%s", String);
DrawFormatString( 0, 40, color_white, "size=%d byte", size) ;
DrawFormatString( 0, 60, color_white, "p_posi=%d byte", p_posi) ;
// ファイルを閉じる
FileRead_close( fp ) ;
}
haiti.txtの中身。
10011
2このようなプログラムを実行してみると、
1001・
という結果になってしまいます。
この「・」の部分にヌル文字が入るようにし、1001と表示したいと思っています。
「・」の部分がヌル文字なのかと思い条件式の内容を変更し、
試してみましたがそういうわけでもないようです。
getcが2バイト文字を正常に読み込めないのが関係しているのかとも思っているのですが……(haiti.txtの中身はすべて半角で書いています)。
ちなみにfgetcで試してみましたが、1001と表示されました(コンパイラはBorlandC++ Compilerです)
もしよろしければアドバイス頂けると幸いです。
開発環境:VisualC++ 2005
OS:Windows XP
ライブラリ:DXライブラリ