ページ 1 / 1
fopen_s -> fgets で原因不明のデータをもってくる
Posted: 2012年12月07日(金) 19:47
by dic
dicです タイトルの通り fopen_s でファイルを開いたあと、fgets関数で、1行読み込むのですが、
読み込んだデータに 意味不明なデータが含まれます
ファイルポインタを先頭にセットしても、先頭に意味不明なデータが含まれます
コードをしたに、画面もはっておきます
なぜ、こんな現象が起こるのでしょうか?
変数 char buf[80] の中身が ???3000000 になります
待機時間.txt の内容は
300000
の一行だけとなっています
コード:
void function15()
{
FILE *file = 0;
if( fopen_s( &file, "待機時間.txt", "rt" ) == 0 )
{
fseek( file, 0, SEEK_SET );
char buf[80];
memset( buf, 0, sizeof(buf) );
fgets( buf, 80, file );
int sleep;
sleep = atoi(buf);
Sleep( sleep );
fclose( file );
}
}
Re: fopen_s -> fgets で原因不明のデータをもってくる
Posted: 2012年12月07日(金) 19:55
by nil
待機時間.txtが
UTF-8などの形式で保存されていませんか?
Re: fopen_s -> fgets で原因不明のデータをもってくる
Posted: 2012年12月07日(金) 20:00
by dic
>>涼雅さん
待機時間.txt を調べてみました
そしたら UTF-8 で保存していました
ANSI 形式にしたら無事、char buf[80] に 300000 が代入されました
解決しました
ありがとうございました
Re: fopen_s -> fgets で原因不明のデータをもってくる
Posted: 2012年12月08日(土) 08:12
by beatle
もしかしたら、先頭についていたデータはBOMかもしれませんね。
BOM【Byte Order Mark】