プロが教える店舗&オフィスのセキュリティ対策術

今VB6のコードをC++に書き換えているのですが、AscB関数を使っている部分をどうC++のコードに書き換えてよいかわかりません。教えてください。よろしくお願いいたします。

A 回答 (2件)

>> 「ffffff82」と出力されてしまいます。



char型は符号付きなので0x82はマイナス値となります。
それをint型に代入すると0xffffff82となるのは当然の事です。

>> int AscB(const char *str){
>>  return str[0];
>> }



int AscB(const char *str){
 return (unsigned char)str[0];
}

で、うまくいきませんか?
    • good
    • 0
この回答へのお礼

うまくいきました。どうもありがとうございました。

お礼日時:2010/01/04 16:15

それぞれの関数の意味を調べずに書き換えようとしているのでしょうか?それは無理です。



一応書いておくと、文字列の先頭バイトの値を整数値で表現したものを返します。

この回答への補足

Shift_JISで"82A0"の"あ"の場合、"82"を返す、というのであっているでしょうか?

int AscB(const char *str){
return str[0];
}

関数を作るならこんな感じでいいような気がしたんですが、
cout << hex << AscB("あ") << endl;
とすると、「ffffff82」と出力されてしまいます。「82」を得るにはどうしたらよいのか教えてください。

補足日時:2010/01/03 19:21
    • good
    • 0

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