K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>kitさん、ありがとうございます。 > >>いや、それは勘違いです。与れますよ。 >>ファイルからコード 255 のバイトを getchar() で読むと、-1 ではなく 255 を返しますから。 > >あちゃ、まだ完全に分かってませんでした。 >getc系の関数はストリームから得た文字をunsigned char型の値として解釈して、それをint型に変換するのでした。 > >つまり、「ア」の文字コードが 0xB1のとき、 >文字定数'ア'の値がデフォルトcharによって異なる(signedならint型の-79、unsignedならint型の177になる)のに対し、 >getcの戻り値は必ずint型の177になるのですね。 > >バイナリエディタで0xB1を書き込んだファイルを使って実験すると、 >手元のVCでは 'ア' == getc() が偽になります。 > >はっきり言って「文字定数」と「getc系関数の戻り値」とは、ぜんっぜん違う!ということですね。 >どちらも最終的にint型になるが、【値を解釈するときに】デフォルトcharに合わせるか、unsigned char固定か。 > >あれ?ということは、 > >int hoge = getchar(); >if(hoge == 'a'){ > /* ...... */ >} > >のほうが(C++ではなくCでは)処理系依存ということになるのですか? >「a」が「後半の」文字かもしれないことを考えると。 >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!