GNUの gcc/g++ は、日本語シフトJISコードに完全に対応していません。そのために、 Windows 95/98 などのシフトJISコード・ベースの環境では、特定の文字で問題を起こし ます。ここでは、その対処法を示します。 日本語の文字コードは2バイトで表されますが、問題を起こすのはその2バイト目が 「円記号」'\' (5C)になる文字です。例えば次のような標準出力 cout << "ベクトルの表示" << endl; のコードを含むプログラムをコンパイルすると
unknown escape sequence: `\' followed by char code 0x8e |
「表」の文字コードは、'x955C' (16進) です。これは1バイト目が 'x95' で、2バイ
ト目が '5C' つまり「円記号」 '\' です。
問題を回避するには、1バイト目を16進数 '\x95' で、2バイト目をエスケープ文
字を使って '\\'で表します("表" → "\x95\\")。
cout << "ベクトルの\x95\\示" << endl;
この様に、2バイト目が「円記号」となる文字をいくつか示します。
'ソ'(x835c) → '\x83\\'
'欺'(x8b5c) → '\x8b\\'
'圭'(x8c5c) → '\x8c\\'
'構'(x8d5c) → '\x8d\\'
'蚕'(x8e5c) → '\x8e\\'
'十'(x8f5c) → '\x8f\\'
'申'(x905c) → '\x90\\'
'貼'(x935c) → '\x93\\'
'能'(x945c) → '\x94\\'
'表'(x955c) → '\x95\\'
'暴'(x965c) → '\x96\\'
'予'(x975c) → '\x97\\'
'禄'(x985c) → '\x98\\'
Copyright(c) 1999 Yamada, K