我的输入来自.csv,如下所示:
1135,"2015-07-19","2015-07-28",446
1130,"2015-12-14","2015-12-21",458
1105,"2015-04-01","2015-04-12",761
1125,"2015-01-01","2015-01-11",692
...等
我需要将2015,07和19放在3个不同的int变量(int year,month,day)中,这样我就可以计算出一本特定的书籍是否可供出租。我一直在使用getline,但遗憾的是getline只能使用char而我无法将我的char转换回int ...并且没有int我无法计算我的书是否可用。
这是我的代码:
while(!fp2.eof())
{
fp2.getline(copyNo,sizeof(copyNo),',');
fp2.ignore(1);
fp2.getline(dateOut.year,sizeof(dateOut.year),'-');
fp2.getline(dateOut.month,sizeof(dateOut.month),'-');
fp2.getline(dateOut.day,sizeof(dateOut.day),'"');
fp2.ignore(2);
fp2.getline(dateDue.year,sizeof(dateDue.year),'-');
fp2.getline(dateDue.month,sizeof(dateDue.month),'-');
fp2.getline(dateDue.day,sizeof(dateDue.day),'"');
fp2.ignore(1);
fp2.getline(borrowerNo,sizeof(borrowerNo));
}
有没有办法可以改变我的getlines,所以日期的数量是整数?
答案 0 :(得分:0)
找到解决方案:
输入完全与.csv(YYYY-MM-DD)一样的字符串输入,将我的解析改为1字符串并执行如下操作:
while(!fp2.eof())
{
fp2.getline(copyNo,sizeof(copyNo),',');
fp2.ignore(1);
getline(fp2,dateOut,'"');
fp2.ignore(2);
getline(fp2,dateDue,'"');
fp2.ignore(1);
fp2.getline(borrowerNo,sizeof(borrowerNo));
}
if(dateDue<today)