1

このコード スニペットを実行しようとすると、原因を特定できなかった誤動作が発生します。最初の 2 つの「cout」行には 7 と 3 の数字が表示されますが、最後の「cout」行には通常 50 ~ 60 の範囲の数字が表示されます (実行した瞬間に 55 と 51 が表示されます。私が読み取ろうとしている数字とビット)。いくつかのグーグルと手元にある本からわかる限り、これは有効なはずですが、明らかに何かが欠けています. お時間をいただきありがとうございます。

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string text = "73";
    int one=0, two=0;

    cout << text.at(0) << endl;
    cout << text.at(1) << endl;
    one = text.at(0);
    two = text.at(1);
    cout << one << endl << two << endl;
    return 0;
}
4

1 に答える 1

5

プログラムは正しく機能します。暗黙のうちに に変換する をtext.at()返します。次に、その int の値を出力します。それぞれ「7」の場合は 55、「3」の場合は 51 です (こちらを参照)。charint

于 2012-06-10T11:36:04.597 に答える