我正在尝试使用此格式读取数据文件
T1: I1,I2,I5
T2: I2,I4
T3: I2,I3
T4: I1,I2,I4
T5: I1,I3
T6: I2,I3
T7: I1,I3
T8: I1,I2,I3,I5
T9: I1,I2,I3
我不想读第一列T1,T2,T3 ......,但是每一行都是我想要开始读取的数据集(空格'')并以每行结束以及如何我可以根据(逗号',')
分隔数据我编写了这段代码,但它无法正常工作,无论如何都会读取第一列
string CItem;
// set of elements
set< CItem > CItemSet;
//Transactions
CItemSet CTransaction;
// set of transactions
vector< CTransaction > CTransactionSet;
ifstream inFile(inFileName);
if (!inFile)
{
cout << "Failed to open input file filename:." << inFileName;
}
CTransactionSet transSet;
CTransaction tran;
string txtLine;
// read every line from the stream
while (getline(inFile, txtLine))
{
istringstream txtStream(txtLine);
string txtElement;
// read every element from the line that is seperated by commas
// and put it into the vector or strings
while (getline(txtStream, txtElement, ','))
{
if (txtElement == ": ") break;
else tran.insert(txtElement);
}
transSet.push_back(tran);
}
答案 0 :(得分:0)
因为你有
CTransaction tran;
在第一个while
循环之外,项目会不断添加到其中。将其移到while
循环内。
CTransactionSet transSet;
string txtLine;
// read every line from the stream
while (getline(inFile, txtLine))
{
CTransaction tran;
答案 1 :(得分:0)
我通过你所说的R Sahu来解决问题,但最重要的解决方案是使用.ignore所以我们不会在''之前阅读部分
TestService.doWork().then()
.catch(errors.catch("Could not complete work!"));