• ベストアンサー

VB6のAscB関数をC++で書き換えたい

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

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

  • ベストアンサー
回答No.2

>> 「ffffff82」と出力されてしまいます。 char型は符号付きなので0x82はマイナス値となります。 それをint型に代入すると0xffffff82となるのは当然の事です。 >> int AscB(const char *str){ >>  return str[0]; >> } ↓ int AscB(const char *str){  return (unsigned char)str[0]; } で、うまくいきませんか?

kokumura
質問者

お礼

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

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

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.1

それぞれの関数の意味を調べずに書き換えようとしているのでしょうか?それは無理です。 一応書いておくと、文字列の先頭バイトの値を整数値で表現したものを返します。

kokumura
質問者

補足

Shift_JISで"82A0"の"あ"の場合、"82"を返す、というのであっているでしょうか? int AscB(const char *str){ return str[0]; } 関数を作るならこんな感じでいいような気がしたんですが、 cout << hex << AscB("あ") << endl; とすると、「ffffff82」と出力されてしまいます。「82」を得るにはどうしたらよいのか教えてください。

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