【发布时间】:2014-04-02 13:35:12
【问题描述】:
我的程序是读取一个包含一些销售记录的文件,并将时间、日期、价格、数量等分开。然后将它们中的每一个分别存储在一个向量中。所有记录是:
10/10/2013 04:57:27 PM,5.81,5000,29050.00,LT XT
10/10/2013 04:48:05 PM,5.81,62728,364449.68,SX XT
10/10/2013 04:10:33 PM,.00,0,.00,
10/10/2013 04:10:33 PM,.00,0,.00,
10/10/2013 04:10:33 PM,.00,0,.00,
5 行。
那么我的代码是:
void main()
{
vector<string> date, time, price, volume, value, condition;
int len;
load(date,time,price,volume,value,condition);
len = date.size();
for (int i=0 ; i<len ; i++)
{
cout << date[i] << endl;
}
cout << "****************************" << endl;
for (int i=0 ; i<time.size() ; i++)
{
cout << time[i] << endl;
}
}
函数加载的定义是:
void load(vector<string> &object1,
vector<string> &object2,
vector<string> &object3,
vector<string> &object4,
vector<string> &object5,
vector<string> &object6)
{
string str1,str2,str3,str4,str5,str6;
string filename;
cout << "Enter name of file to read (one word only): ";
cin >> filename;
ifstream fptr(filename);
if (fptr.rdstate() == 0) // no error open file
{
while (!fptr.eof())
{
getline(fptr,str1,' ');
object1.push_back(str1);
getline(fptr,str2,',');
object2.push_back(str2);
getline(fptr,str3,',');
object3.push_back(str3);
getline(fptr,str4,',');
object4.push_back(str4);
getline(fptr,str5,',');
object5.push_back(str5);
getline(fptr,str6,',');
object6.push_back(str6);
}
}
else
{
cerr << "Could not open file \"" << filename << "\" for reading." << endl;
}
cout << "- after load function" << endl;
}
然后我得到下面的有线结果。我不知道我错在哪里。
矢量日期的结果(4 个结果应该是 5 并且混合了所有内容):
2013 年 10 月 10 日
5.81,62728,364449.68,SX
.00,0,.00
2013 年 10 月 10 日
向量时间的结果(同样的问题):
04:57:27 下午
XT
2013 年 10 月 10 日下午 4:10:33
04:10:33 下午
【问题讨论】:
-
程序连线结果的概念有点……奇怪……