我试图将名为“ board.txt”的文件的前7个字符读入vector 中,但是由于某些原因,我遇到了问题。我对C ++不太熟悉,因此不胜感激,这是到目前为止的代码

    //rack
int charCount = 0;
char ch;

ifstream rackIn("board.txt");

while(rackIn.get(ch) && charCount < 7){
    this->getMyRack().push_back(ch);
}


这是上面的代码中使用的功能getMyRack:

vector<char> board::getMyRack(){
    return this->myRack;
}


myRack是一个char向量

我尝试使用以下方法在我的主服务器中对此进行测试:

for (int i = 0; i < test->getMyRack().size(); ++i){
    cout << test->getMyRack().at(i);
}


但它不输出任何内容,为什么我正在读取的字符没有被添加到我的字符向量中?

最佳答案

因为您不将char放入向量中。函数getMyRack()返回向量,但不返回向量地址。您可以在类板上添加用于添加char的方法,例如:

 void board::addChar(char c){
     this->myRack.push_back(c);
   }


然后调用此函数:

 while(rackIn.get(ch) && charCount < 7){
    this->addChar(ch);
  }


或更改函数的返回类型。

07-27 13:34