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

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

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

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

Q&A

解決済

3回答

1427閲覧

コンパイルするとwarningが出ています。どうしてでしょうか

退会済みユーザー

退会済みユーザー

総合スコア0

C

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

0グッド

0クリップ

投稿2018/04/01 01:18

コンパイルするとwarningが出ています。どうしてでしょうか
"九九の加算表"を"Snoopy"にすると正常動作します。
お願いいたします。

コード /* header files */ #include <stdio.h> #include <stdlib.h> /* main */ int main(void) { char *writeline = "九九の加算表"; puts(writeline); return EXIT_SUCCESS; } 実行結果 naka@naka ~/chap08 $ gcc -o list8_4_puts list8_4_puts.c -Wall list8_4_puts.c: In function 'main': list8_4_puts.c:7:23: warning: missing terminating " character char *writeline = "九九の加算表"; ^ list8_4_puts.c:7:23: error: missing terminating " character char *writeline = "九九の加算表"; ^~~~~~~~~~~~~~~ list8_4_puts.c:8:5: warning: initialization makes pointer from integer without a cast [-Wint-conversion] puts(writeline); ^~~~

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

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

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

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

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

guest

回答3

0

文字コードに \ が含まれていることが原因であることは他の方の回答で挙げられていますが、 GCC の場合は入力する文字コードを --input-charset というオプションで指定することが出来ます。

今回の事例であれば --input-charset=cp932 と付ければよいです。

ちなみに、実行ファイルに対してどのような文字コードで出力するかは --exec-charset で指定することが出来ます。

ただし、 GCC 自体をビルドするときのオプションで iconv をリンクしておかないといけないのでお使いの gcc に -v オプションを付けて実行したときに表示されるメッセージの中に --with-libiconv が無いならばこの機能は使えません。

投稿2018/04/01 06:12

SaitoAtsushi

総合スコア5444

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

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

退会済みユーザー

退会済みユーザー

2018/04/01 06:46

ありがとうございます。初心者なので難しいことは分かりません。勉強中です。
guest

0

char *writeline = "九九の加算表";

としてみよう

#イマドキのコンパイラでこれ出るって、ちょっと前のGCCか


文字コードがShiftJISだと、'表'の2バイト目が \ と同じコードになるので、日本語考慮していないコンパイラだと、そこでエラーになるのですね。

投稿2018/04/01 01:42

編集2018/04/01 01:45
y_waiwai

総合スコア87749

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

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

退会済みユーザー

退会済みユーザー

2018/04/01 02:53

いつもありがとうございます。
guest

0

ベストアンサー

ソースの文字コードは何が使われてるかしら。
Shift-JISだと"表"が怪しい、UTF-8で試してみて。

投稿2018/04/01 01:36

episteme

総合スコア16614

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

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

退会済みユーザー

退会済みユーザー

2018/04/01 02:16

ありがとうございます。"表"が出てきたときは¥をつけて実行したことが何回かありました。 そそっかしいので、前につけていました。
episteme

2018/04/01 06:52

'表'の第2byteが'\'と一致するのが原因です。
退会済みユーザー

退会済みユーザー

2018/04/01 07:24

はい、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問