dポイントプレゼントキャンペーン実施中!

現在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というのを使っています。どなたかご回答のほうをよろしくお願いします。

A 回答 (3件)

ガソリンの「ソ」がシフトJISで0x835Cになるためで


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

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

お礼日時:2005/06/27 16:43

MinGWは日本語対応してなかったんじゃないかな。


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

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

お礼日時:2005/06/27 16:46

特に問題ないですが…。



> 15: warninng: unknown escape sequence: '\' followed by char code 0x83

char code(文字コード)絡みでエラーが出るパターンとしては、ソースコードに全角の空白が含まれているとか。
空白表示の出来るエディタで確認するとかしてみて下さい。

この回答への補足

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

補足日時:2005/06/27 13:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!