fopen_s -> fgets で原因不明のデータをもってくる

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
dic
記事: 657
登録日時: 13年前
住所: 宮崎県
連絡を取る:

fopen_s -> fgets で原因不明のデータをもってくる

#1

投稿記事 by dic » 11年前

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 );
	}
}
添付ファイル
WS000004.JPG

nil
記事: 428
登録日時: 12年前

Re: fopen_s -> fgets で原因不明のデータをもってくる

#2

投稿記事 by nil » 11年前

待機時間.txtが
UTF-8などの形式で保存されていませんか?

dic
記事: 657
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: fopen_s -> fgets で原因不明のデータをもってくる

#3

投稿記事 by dic » 11年前

>>涼雅さん
待機時間.txt を調べてみました
そしたら UTF-8 で保存していました

ANSI 形式にしたら無事、char buf[80] に 300000 が代入されました

解決しました
ありがとうございました

beatle
記事: 1281
登録日時: 12年前
住所: 埼玉
連絡を取る:

Re: fopen_s -> fgets で原因不明のデータをもってくる

#4

投稿記事 by beatle » 11年前

もしかしたら、先頭についていたデータはBOMかもしれませんね。
BOM【Byte Order Mark】

閉鎖

“C言語何でも質問掲示板” へ戻る