我正在尝试从以 csv 格式保存的 Excel 文件中读取数据,我的 excel 文件有 6 行 49 列,如图所示:
我想从该文件中读取数据,我正在执行以下代码:
ifstream inFile;
inFile.open("datacsvformatdelimitadoporcomas.csv");
string nombre2="factura";
string b= ".xml";
string suma= nombre2+ b;
ofstream fout(suma.c_str());
vector<string> cabeceras;
string campo;
string line;
while(getline(inFile, line)){//coges linea por linea
istringstream s(line);
string field;
while (getline(line,campo,';')) {
cabeceras.push_back(campo);
}
}
for(int i=0;i<cabeceras.size();i++){
cout<<cabeceras[i]<<endl;
}
但是,它在编译时给了我错误:
错误是这样的:
no matching function for call to 'getline(std::string&, std::string&, char)'
参考第一行:
while (getline(line,campo,';'))
我删除了 ; 但我仍然得到错误。
该函数
std::getline
期望接收一个输入流,您正在向它传递一个字符串,因此出现错误:这基本上是在告诉您,没有哪个版本
getline
接受两个std::string
作为第一个和第二个参数,然后是一个char
作为第三个参数。你肯定想写这个: