ファイル出力すると文字化け(C言語)

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Jimmy

ファイル出力すると文字化け(C言語)

#1

投稿記事 by Jimmy » 11年前

コード:

#include<stdio.h>
#include<time.h>
#define MAX 50

int main() {
	int array[MAX];
	int i;
	FILE *fp;
	
	fp = fopen("test.txt", "w");
	
	// 乱数代入
	srand((unsigned)time(NULL));
	for(i = 0; i < MAX; i++) {
		fprintf(fp,"%d ",array[i] = rand()%10);
		printf("%d ",array[i]);
	}
	
	fclose(fp);
	return 0;
}
このように文字化けします↓
‷′‴′‶‹‹‶″″‰‴‶‱‰‸″″‱‶‵‷‰″‹‰‶‸‰‸‸‱‸′‸‶‷‵‹‴‱‴‱‱‱‹‰‵′‶

15行目の%dのあとの半角スペースを取り除けば、思い通りの結果になります。
ですが、半角スペースを入れたいので、質問させていただきました。原因を教えてください。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: ファイル出力すると文字化け(C言語)

#2

投稿記事 by softya(ソフト屋) » 11年前

当方の環境では、文字化けしません。
当方の環境:Visual C++2008コマンドライン cl test.cでコンパイル。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
tk-xleader
記事: 158
登録日時: 13年前
連絡を取る:

Re: ファイル出力すると文字化け(C言語)

#3

投稿記事 by tk-xleader » 11年前

質問するときは、コンパイル環境と、実行環境を書きましょう。書いてない場合、回答者の側がその現象を再現することができない場合があります。

ホヅミ
記事: 110
登録日時: 13年前

Re: ファイル出力すると文字化け(C言語)

#4

投稿記事 by ホヅミ » 11年前

ファイルに書き込んだら最後は改行コードを入れてあげてください
バイナリ上では正常に書き込まれていますが、メモ帳では文字化けして表示されてしまいます。
バイナリエディタでアスキーコードとにらめっこするとわかりやすいと思います。

Jimmy

Re: ファイル出力すると文字化け(C言語)

#5

投稿記事 by Jimmy » 11年前

皆さんありがとうございます。環境が関わることということがわかりました。
それから、最後に改行コードちゃっといれるようにします。

閉鎖

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