解決済み

C言語、エラーメッセージが紐解けません。

  • 困ってます
  • 質問No.9493827
  • 閲覧数162
  • ありがとう数4
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 92% (544/588)

いつも大変お世話になり誠にありがとうございます。
標記の件。
エラーメッセージが紐解けません。
どうかどなたかアドバイスください。
下記にコードとコンパイルエラーを書きます。
       記
コード
#include <stdio.h>

typedef struct Car{
int num;
double gas;
}Car;

int main(void)
{
printf("int型のサイズは%dバイトです。\n", sizeof(int));
printf("double型のサイズは%dバイトです。\n", sizeof(double));
printf("構造体struct Car型のサイズは%dバイトです。\n",sizeof(Car));
printf("構造体struct Car型へのポインタのサイズは%dバイトです。\n",sizeof(Car *));

return 0;
}


コンパイラーエラー
C:\MinGW>gcc text20.c -o text20
text20.c: In function 'main':
text20.c:12:11: warning: unknown escape sequence: '\221'
printf("構造体struct Car型のサイズは%dバイトです。\n",sizeof(Car));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
text20.c:13:11: warning: unknown escape sequence: '\221'
printf("構造体struct Car型へのポインタのサイズは%dバイトです。\n",sizeof(Car *));

以上です。
ご多忙中恐れ入ります。
ご回答の程宜しくお願い申し上げます。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 48% (4388/9020)

mingwは、文字コードがutf-8前提なので、シフトJISの文字を使うときは、コンパイルオプションの指定が必要です。

gcc -finput-charset=CP932 -fexec-charset=CP932 text20.c -o text20
お礼コメント
jump7799

お礼率 92% (544/588)

ご回答誠にありがとうございました。
流石によくご存じですね。
凄いですね。
大変勉強になりました。
今後とも宜しくお願い致します。
投稿日時 - 2018-04-30 22:27:34

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 44% (4161/9384)

他カテゴリのカテゴリマスター
どうしてそんなメッセージが出るかと言えば,ShiftJISコードがそれぞれ16進で
構(8d-5c)造(91-a2)
となっています。そして構の2バイト目の5cはバックスラッシュ「\」の文字コードと同じですから8d-5c-91-a2の5c-91のところがescape sequenceだと解釈されるのです。escape sequenceは文字列の中で特殊な文字を入力したいときに使うもので,たとえば「\n」でも使っていますよね。
16進の91は8進だと221です。 だから'\221'となって,知らないescape sequenceだと言うのです。
お礼コメント
jump7799

お礼率 92% (544/588)

ご回答誠にありがとうございました。
お書きになっていることが、マダよく解りません。
僕が1番理解できてないのが、2進数、8進数、16進数
です。
そのうち質問するかも知れないので、
どうぞ、宜しくお願い申し上げます。
投稿日時 - 2018-04-30 22:54:18
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集

ピックアップ

ページ先頭へ