2017-10-29 21 views
-4

私はこの配列を出力しようとしています。私はばかだとわかりませんし、解決策が私を見つめているか、ここで何かもっと技術的に進んでいます。2次元配列を出力する

コード:

for (string i=0;i<row; i++) 
    { 
     for (string j=0; j<col; j++) 
     { 
      out << Array[i][j]; 
     } 
    } 

Arraycharデータ型であることに注意してください。 rowcolは文字列として定義されています。

私は取得していますエラーがビジュアル・スタジオ(3つのエラー)からです:

cpp(97): error C2676: binary '++': 'std::string' does not define this operator or a conversion to a type acceptable to the predefined operator 

cpp(99): error C2676: binary '++': 'std::string' does not define this operator or a conversion to a type acceptable to the predefined operator 

cpp(101): error C2677: binary '[': no global operator found which takes type 'std::string' (or there is no acceptable conversion) 

私はカウンターのためにint型の代わりに文字列を使用しようとしたことに注意が、私は多くのエラーが出る...

ください。
+0

なぜ文字列ですか?インクリメントしたい場合は数値型を使います。例えば 'int' – user463035818

+0

intに 'i'と 'j'を変更するとエラーが増えます。 – Bane

+0

"配列はcharデータ型です。rowとcolは文字列として定義されています。"私は申し訳ありませんが、それは理にかなっていません。「iとiをintに変更すると、もっと多くのエラーが発生するので、実際には面白いです。とにかく[mcve]を入力してください。 – George

答えて

0

私はコメントに同意します。エラーや警告を取り除くだけでコンパイラと戦うべきではありませんが、その意味を理解して正しく修正しようとしてください。あなたのケースでは、タイプstd::stringoperator++が定義されていないため、j++i++は不正です。

私はintとして定義され、行と列を持っている、あなたは書くことができ、あなたのArrayデータタイプをお勧め:

for (int i=0;i<row; i++) 
    { 
     for (int j=0; j<col; j++) 
     { 
      std::cout << Array[i][j]; 
     } 
    } 

operator<<Arrayタイプ、それ以外の行のためにオーバーロードされると仮定すると:

std::cout << Array[i][j]; 

も違法です。