• ベストアンサー

コンパイルエラー (超初心者です)

現在C言語の勉強をしているのですがテキスト通りに打ったのですが、どうしてもエラーが出てしまいます。 #include <stdio.h> struct Car{ //構造体型struct Carの宣言 int num; double gas; }; int main() { struct Car car1; //構造体型の変数(構造体)を宣言する car1.num = 1234; //メンバに値を代入する car1.gas = 25.5; printf("車のナンバーは%d :ガソリン量は%fです。\n", car1.num, car1.gas); return 0; } エラーメッセージは 15: warninng: unknown escape sequence: '\' followed by char code 0x83 といった感じです。 ちなみにコンパイラはMingw gccというのを使っています。どなたかご回答のほうをよろしくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

ガソリンの「ソ」がシフトJISで0x835Cになるためで 5Cの部分が「\」のコードになるためにおこるエラーだと思います。 localeとかwprintfとかで対処すべきなんでしょうが とりあえず、該当する部分を printf("車のナンバーは%d :ガ\x83\x5cリン量は%fです。\n", car1.num,car1.gas); の様にしてやればとりあえずOKだと思います

noname#13733
質問者

お礼

ご回答のほうどうもありがとうございました。 ガソリンの「ソ」が・・・ > 全くその通りでした。構造体がどうのこうのという問題ではなかったみたいです。 何よりも、コンパイラ自体の問題ではなくてホッとしています。 助かりましたどうもありがとうございます。^^

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.2

MinGWは日本語対応してなかったんじゃないかな。 とりあえず > printf("車のナンバーは%d :ガソリン量は%fです。\n", car1.num, の日本語を全部アルファベットで置き換えてみる。 それでもだめなら、コメントも全部アルファベットに置き換えてみる。 日本語対応のできていないCコンパイラをSJIS環境で使った場合、使う文字に依存して異常が出ます。 # 具体的には2バイト文字の2バイト目が\に一致する場合に誤認する # 該当個所に\を補うと回避できるかも

noname#13733
質問者

お礼

ご回答どうもありがとうございました。 とても助かります。

すると、全ての回答が全文表示されます。
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

特に問題ないですが…。 > 15: warninng: unknown escape sequence: '\' followed by char code 0x83 char code(文字コード)絡みでエラーが出るパターンとしては、ソースコードに全角の空白が含まれているとか。 空白表示の出来るエディタで確認するとかしてみて下さい。

noname#13733
質問者

補足

さっそくのご回答ありがとうございます。 今まではエラーメッセージが出てもデバッグをしていけばどうにか解決できたのですが、構造体のプログラムを打つとどうしても同じメッセージが出てしまいます。 ということで私自身が思ったことなのですが、このコンパイラ(Mingw gcc)自体に問題があるような気がするのですが、どうでしょうか? どなたかよろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A