C++,从文件中逐个字符地将字符读入 vector<char>

标签 c++ vector fstream ifstream

我正在尝试将名为“board.txt”的文件的前 7 个字符读入 vector <'char>,但由于某种原因我遇到了问题。我不太熟悉 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 是一个字符 vector

我试着在我的主要测试中使用这个:

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

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

最佳答案

因为您没有将 char 放入 vector 中。您的函数 getMyRack() 返回 vector ,但不返回 vector 的地址。您可以将方法添加到您的类(class)板以添加字符,例如:

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

然后调用这个函数:

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

或者更改函数的返回类型。

关于C++,从文件中逐个字符地将字符读入 vector<char>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34101838/

相关文章:

c++ - 编译时位掩码的递归模板

c++ - 成员初始化列表中的条件运算符

c++ - 如何用满足某些条件的另一个 vector 中的数据填充 std::vector

c++ - 用 int 值初始化 vector <char>

c++ - 为什么header中的全局变量ofstream不能用C++写文件?

带有字符数组的 C++ & 运算符

c++ - 如何有效地从一定长度的字符串 vector 中删除单词

c++ - fstream 跳过字符而不读取位图

c++ - 从文本文件读取到数组

c++ - TBB 与 C++ 的链接