質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

5968閲覧

同じプログラムをコピーしたものが表示がおかしい

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2017/09/19 07:27

編集2017/09/19 07:29

同じプログラムをコピーしたものが表示がおかしい
test7.c:28:22⚠️ unknown conversion type character 'U' in format [-Wformat=]
のようなワーニング出て上手くいきません。このワーニングを直す方法がありますか。ほかにも同じ行で'!'、'$'、'k'、 'W'
test7.c:28:38: warning: format '%s' expects a matching 'char *' argument [-Wformat=]など出ています。この行は日本語を表示している箇所です。
printf( "ファイルがオープンできません\n" );の箇所です。

コード #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAXCNT 100 char dtfile[] = "LACKNUM.DAT"; char dtfile2[] = "LACKNUM2.DAT";// 最高記録用のファイル typedef struct { // 構造体の宣言 int tm_year; int tm_mon; int tm_mday; int tm_hour; int tm_min; int tm_sec; double score; } SCORE_DATA; double read_kakodata(int* count,double* score) { FILE *fp; int i; SCORE_DATA stars[MAXCNT]; // 構造体配列の宣言 if( (fp=fopen( dtfile, "rb" ))==NULL ){ printf( "ファイルがオープンできません\n" ); exit( 1 ); } for( i = 0; i <MAXCNT; i++ ) { if( fscanf( fp, "%d %d %d %d %d %d %lf\n" // 構造体配列への読み込み , &stars[i].tm_year,& stars[i].tm_mon, &stars[i].tm_mday, &stars[i].tm_hour, &stars[i].tm_min,&stars[i].tm_sec,&stars[i].score ) != 7 ) break; (*count)++; } printf("count0:%d\n\n",*count); for(i = 0; i<*count; i++ ){ printf( "%d年 %d月 %d日 %d時 %d分 %d秒 \n所要時間(score)は%.1f\n\n" // 構造体配列への読み出し , stars[i].tm_year,stars[i].tm_mon,stars[i].tm_mday, stars[i].tm_hour,stars[i].tm_min,stars[i].tm_sec,stars[i].score); } fclose(fp); return 0; } int main() { int count=0; double score; read_kakodata(&count,&score); printf("count3:%d\n\n", count); return 0; } 実行結果 異常 C:\MinGW\users\chap09\kadai>test7 count0:13 2017$BG/(J 9$B7n(J 16$BF|(J 8$B;~(J 52$BJ,(J 18$BIC(J $B=jMW;~4V(J(score)$B$O(J10.6 2015$BG/(J 12$B7n(J 7$BF|(J 19$B;~(J 59$BJ,(J 8$BIC(J $B=jMW;~4V(J(score)$B$O(J8.0 2016$BG/(J 1$B7n(J 4$BF|(J 1$B;~(J 9$BJ,(J 11$BIC(J $B=jMW;~4V(J(score)$B$O(J7.5 2016$BG/(J 1$B7n(J 4$BF|(J 19$B;~(J 16$BJ,(J 8$BIC(J $B=jMW;~4V(J(score)$B$O(J9.0 2016$BG/(J 1$B7n(J 4$BF|(J 19$B;~(J 2$BJ,(J 44$BIC(J $B=jMW;~4V(J(score)$B$O(J7.5 2016$BG/(J 1$B7n(J 4$BF|(J 22$B;~(J 31$BJ,(J 52$BIC(J $B=jMW;~4V(J(score)$B$O(J9.3 2016$BG/(J 1$B7n(J 4$BF|(J 23$B;~(J 33$BJ,(J 50$BIC(J $B=jMW;~4V(J(score)$B$O(J10.2 2016$BG/(J 1$B7n(J 31$BF|(J 21$B;~(J 9$BJ,(J 53$BIC(J $B=jMW;~4V(J(score)$B$O(J7.0 2016$BG/(J 2$B7n(J 2$BF|(J 8$B;~(J 49$BJ,(J 9$BIC(J $B=jMW;~4V(J(score)$B$O(J9.4 2016$BG/(J 2$B7n(J 27$BF|(J 12$B;~(J 45$BJ,(J 26$BIC(J $B=jMW;~4V(J(score)$B$O(J13.0 2016$BG/(J 2$B7n(J 28$BF|(J 2$B;~(J 27$BJ,(J 20$BIC(J $B=jMW;~4V(J(score)$B$O(J7.4 2016$BG/(J 5$B7n(J 2$BF|(J 16$B;~(J 43$BJ,(J 32$BIC(J $B=jMW;~4V(J(score)$B$O(J6.3 2017$BG/(J 9$B7n(J 14$BF|(J 10$B;~(J 21$BJ,(J 18$BIC(J $B=jMW;~4V(J(score)$B$O(J6.0 count3:13 C:\MinGW\users\chap09\kadai> 正常 C:\MinGW\users\chap09\kadai>gcc -I. -o test5 test5.c -Wall C:\MinGW\users\chap09\kadai>test5 count0:13 2017年 9月 16日 8時 52分 18秒 所要時間(score)は10.6 2015年 12月 7日 19時 59分 8秒 所要時間(score)は8.0 2016年 1月 4日 1時 9分 11秒 所要時間(score)は7.5 2016年 1月 4日 19時 16分 8秒 所要時間(score)は9.0 2016年 1月 4日 19時 2分 44秒 所要時間(score)は7.5 2016年 1月 4日 22時 31分 52秒 所要時間(score)は9.3 2016年 1月 4日 23時 33分 50秒 所要時間(score)は10.2 2016年 1月 31日 21時 9分 53秒 所要時間(score)は7.0 2016年 2月 2日 8時 49分 9秒 所要時間(score)は9.4 2016年 2月 27日 12時 45分 26秒 所要時間(score)は13.0 2016年 2月 28日 2時 27分 20秒 所要時間(score)は7.4 2016年 5月 2日 16時 43分 32秒 所要時間(score)は6.3 2017年 9月 14日 10時 21分 18秒 所要時間(score)は6.0 count3:13 C:\MinGW\users\chap09\kadai>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2017/09/19 09:06

「MingW 文字化け」でググってみてはいかがでしょう。
guest

回答2

0

ベストアンサー

おそらく文字コードが異なっています。 エディタが文字コードの種類を自動判定して適切な解釈をすることがあるので、見かけ上は同じプログラムかもしれませんが、コンパイラが要求する形式になっていないのだと思います。

言語仕様としては使える文字コードははっきり決められていないので、処理系の裁量なのです。

とりあえず大抵のテキストエディタでは保存するときに文字コードを選択できるのでそれで元と同じ文字コードを選択してみてください。

コンパイラの方でどうにかするのであれば、 GCC を使用しているようですので、もし GCC のビルド時に iconv を有効にしているのであれば -finput-charset=cp932 というようなオプションを付けてコンパイルすれば大丈夫でしょう。 (この例はソースコードの文字コードが cp932 の場合です。) また、プログラム中に埋め込まれる文字のコードは -fexec-charset オプションで指定できます。 ただ、 MinGW 版の GCC は iconv が有効になっていないかもしれません。

投稿2017/09/19 09:18

SaitoAtsushi

総合スコア5444

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/20 01:39

後でTeraPadを使って自分で打ち込んでみます。ありがとうございます。
退会済みユーザー

退会済みユーザー

2017/09/20 23:43

ありがとうございました。文字コードがJISになっていました。Sifts_Jisにしてなおりました。
guest

0

test5.c と test7.c で同じ内容なのに test7.c の方はおかしくなるという事でしょうか?
test5.c と test7.c のファイルの文字コードが違ってると思うので比較確認してみてはどうでしょうか?

投稿2017/09/19 07:49

HiroshiWatanabe

総合スコア2160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/20 01:45

はい、おっしゃる通りです。TeraPadにコピーしたので、それをまたコピーしているからだと思います。 分割で関数を作って、後でリンクするつもりでいます。勉強することが多くてなかなか前に進んでいかないじょうたいです。回答くださりありがとうございます。金曜日、土曜にやろうと思っています。
退会済みユーザー

退会済みユーザー

2017/09/20 23:44

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問