错误:没有匹配函数调用‘std::vector<std:
Posted
技术标签:
【中文标题】错误:没有匹配函数调用‘std::vector<std:【英文标题】:error: no matching function for call to ‘std::vector<std: 【发布时间】:2021-08-31 14:17:53 【问题描述】:我编写 func 将字符串从文件写入向量,但出现错误
error : error: no matching function for call to ‘std::vector<std::__cxx11::basic_string<char> >::push_back(std::ifstream&)
代码:
//parse file file
#include <fstream>
#include <vector>
const unsigned short numOfStrings=5;
void ReadFromFile (std::ifstream& thisin, std::vector<std::string>& thisData)
thisData.push_back(thisin);
int main ()
【问题讨论】:
是的,您不能将 ifstream 推送到字符串向量中。 您忘记在函数中添加一个 while 循环,该循环从thisin
读取字符串,然后您可以将这些字符串添加到向量中。
请参阅此答案的第 2 部分:https://***.com/a/7868998/487892,了解如何逐行读取文件。您不需要内部 std::istringstream iss(line); ...
部分将其替换为 thisData.push_back(line);
numOfStrings
是否参与了这个问题?
没有,忘记删除
【参考方案1】:
您正试图将ifstream
推入向量,而不是从中读取。
要从 ifstream 中读取,您可以执行以下操作。
void ReadFromFile (std::ifstream& thisin, std::vector<std::string>& thisData)
std::string word;
while(thisin >> word)
thisData.push_back(word);
【讨论】:
以上是关于错误:没有匹配函数调用‘std::vector<std:的主要内容,如果未能解决你的问题,请参考以下文章
错误:没有匹配函数调用‘std::vector<std::__cxx11::basic_string<char> >::push_back(int&)’