文字化けが起きてしまいます

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

文字化けが起きてしまいます

#1

投稿記事 by 南瓜 » 15年前

C言語の勉強をしたくてある問題のプログラムを書き込んだんですが
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(void) {
	int computer;
	
	printf("[じゃんけんゲーム]\n");
	srand(time(NULL));
	computer = rand()%3+1;
	printf("コンピュータは%d", computer);
	
	return (0);
}
コンパイルはうまくいったんですが実行すると下のような文字化けをするんです。
[????&#273346;?Q?[??]
?R???s???[?^??2
文字化けを解消するにはどうすればいいでしょうか?

OS:Mac OSX コンパイル:gcc?と思われます
以上が質問ですお願いします。

たかぎ

Re:文字化けが起きてしまいます

#2

投稿記事 by たかぎ » 15年前

ちゃんと表示されましたよ。
ただ...
文字コードをSJISで保存すると、ほぼ同じ状態を再現できました。
SJISで保存してもかまいませんが、その場合は、-finput-charset=cp932オプションを指定してください。

南瓜

Re:文字化けが起きてしまいます

#3

投稿記事 by 南瓜 » 15年前

返信ありがとうございます。しかし、
gcc -finput-charset=cp932 2-1.cをしても
[????&#273346;?Q?[??]
?R???s???[?^??1
と文字化けが起こります。
#include <stdio.h>

int main() {
	printf("Hello!");
	rewind(stdin);
	getchar();
	return 0;
}
このプログラムは、文字化けせずに済んだんですが。。。
文字コードは、ピクチャ2.pngのようにUTF-8になっていると思うんですが
何が悪いんでしょうか?

たかぎ

Re:文字化けが起きてしまいます

#4

投稿記事 by たかぎ » 15年前

GCCのバージョンを教えてください。
あと、問題のソースファイルを(本文中にペーストするのでなく)添付してください。

南瓜

Re:文字化けが起きてしまいます

#5

投稿記事 by 南瓜 » 15年前

ターミナル バージョン 2.0.2 (240.2)
です

たかぎ

Re:文字化けが起きてしまいます

#6

投稿記事 by たかぎ » 15年前

-finput-charset=cp932 を付ければ問題は解消しました。

> ターミナル バージョン 2.0.2 (240.2)
> です

ターミナルではなく、GCCのバージョンです。
まさかとは思いますが、3.4より前のバージョンであれば、-finput-charsetオプションが効きませんので、文字化けすると思います。
当方では、4.0.1と4.4.0を試しましたが、どちらもうまくいきました。

南瓜

Re:文字化けが起きてしまいます

#7

投稿記事 by 南瓜 » 15年前

すみません
gcc -dumpversion
4.0.1
とでたのでバージョン4.0.1だと思います

コンパイルするときに
gcc -finput-charset=cp932 2-1.c とすればいいんですよね?

南瓜

Re:文字化けが起きてしまいます

#8

投稿記事 by 南瓜 » 15年前

たびたび済みません
viで同じプログラムを書いた所文字化けせずにコンパイルできました...
(今までmiでプログラムを書いててそのファイルをコンパイルすると上記の文字化けが起きたのですが)
使いやすさからいうと自分はmiでプログラムを書きたいんですが
あきらめてviでプログラムを書くしかないでしょうか?

たかぎ

Re:文字化けが起きてしまいます

#9

投稿記事 by たかぎ » 15年前

> (今までmiでプログラムを書いててそのファイルをコンパイルすると上記の文字化けが起きたのですが)
> 使いやすさからいうと自分はmiでプログラムを書きたいんですが

私もmiとXCodeで確認しましたが、どちらも問題ありませんでした。

南瓜

Re:文字化けが起きてしまいます

#10

投稿記事 by 南瓜 » 15年前

miの文字コードがSJISになっていたので
UTF-8にしたら文字化けが直りました!
ありがとうございます。そして、お騒がせしました!

閉鎖

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