0

次のように宣言されたベクトルがあります。

    vector < vector<char> > v;

プレーヤーによっては、ベクトルに x または o を挿入したいと考えています。私はこのようにやっています:

 v[y][x]= set%2 ? 'o':'x';

私のベクトルでは、代わりに o または x を取得しています: 120 'x'。なんで?x だけを挿入するにはどうすればよいですか?

4

1 に答える 1

4

問題は、ほとんどの場合、char を整数として出力していることです。これにより、「x」に 120 が返されます。アスキー テーブルを参照してください。

@ us2012が指摘したように、価値をどのように見ているかについてのコメントを考慮してください:

デバッガーで次のような値を取得します: {move=0 win=false v=[2]([2](120 'x',0),2) }game_size* const

これは、追加情報を表示する単なるデバッガです。

値を出力したい場合は、printfパラメーターを使用static_castするか、出力したいものを 'ing することにより、正確な表現を選択できます。

印刷:

std::cout << v[y][x] << std::endl;

ベクトルは を格納するため、「x」が返されますchar

10 進数で表示する場合は、次のようにします。

std::cout << static_cast<int>(v[y][x]) << std::endl;
于 2013-03-10T19:28:58.837 に答える