2017-03-25 6 views
-2

私の問題は、ベクター内のデータを印刷したいときに、さあ。 charをintに変更すると、それは完全に機能します。どんな助けもありがとうございます。私のC++プログラムでは文字は印刷されませんが、コードをintに変更するとコードは完全に動作します

#include <iostream> 
#include <cstring> 
#include <vector> 
using namespace std; 

class Editor 
{ 
public: 
    int xtam,ytam; 
    vector<vector<char> >Tab; 
    vector<char> temp; 
    Editor(){} 
    void setI(int x, int y) 
    {  
     xtam = x; 
     ytam = y; 
     for (int i = 0; i<xtam; i++) 
     { 

      for (int j = 0; j<ytam; j++) 
      { 
       temp.push_back(0); 
      } 
      Tab.push_back(temp); 
     } 

     for (int i = 0; i<xtam; i++) 
     { 
      for (int j = 0; j<ytam; j++) 
      { 
       cout << Tab[i][j]; 
      } 
      cout << endl; 
     } 

    } 
    void setL(int r, int s, char A) 
    { 
     Tab[1][1] = 2; 
     for (int i = 0; i<xtam; i++) 
     { 
      for (int j = 0; j<ytam; j++) 
      { 
       cout << Tab[i][j]; 
      } 
      cout << endl; 
     } 
    } 

}; 

int main() 
{ 
    string comando; 
    Editor inicio; 

    while (comando != "X") 
    { 
     cin >> comando; 
     if (comando == "I") 
     { 
      cout << "I"<< endl; 
      int x, y; 
      cin >> x; 
      cin >> y; 
      inicio.setI(x, y); 

     } 
     else if (comando == "L") 
     { 
      cout << "L" << endl; 
      int r, s; 
      char A; 
      cin >> r; 
      cin >> s; 
      cin >> A; 
      inicio.setL(r,s,A); 
     } 
    } 
    return 0; 
} 

これは印刷をit'sものの写真である:Image

+3

「0」は「0」ではありません。 – LogicStuff

+0

あなたは関数に渡す入力パラメータを使わないでください。void 'setL(int r、int s、char A)' –

答えて

0

あなたは解釈されチャー(@LogicStuffに述べたように、'0'に等しくない)、として0値を挿入しますASCIIの値はNULLです。この行をtemp.push_back(0);からtemp.push_back('0');に変更してください。 ASCII値「0」を使用する場合は、temp.push_back(48);に変更する必要があります。

関連する問題