如果您对分隔符和计数非常确定,那么您可以使用
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
using namespace std;
int main()
{
fstream fs;
fs.open("abc.txt",ios::in); //1
string str;
int counter = 0;
vector<string> vecString;
vector<double> vecDouble1;
vector<double> vecDouble2;
while(getline(fs, str)) //2
{
char *sArr = new char[str.length()+1]; //3
strcpy(sArr, str.c_str());
char *pch = strtok(sArr,","); //4
vecString.push_back(pch); //5
pch = strtok(NULL,",");
vecDouble1.push_back(atof(pch)); //6
pch = strtok(NULL,",");
vecDouble2.push_back(atof(pch));
delete[] sArr; //7
}
cin.ignore();
}
我建议您在向量上使用数组。
按需说明:
通过流以输入模式打开文本文件
逐行从文件中获取文本。
使用此中间 char 数组是因为将 a 强制const
转换为非 `const 是不安全的。
根据分隔符(在您的情况下为单个逗号)标记输入行。请参阅本教程。
将元素添加到最后的向量中。
atof()
用于转换string
为double
.
释放中间字符指针。