这是来自谷歌练习题,https://code.google.com/codejam/contest/32014/dashboard#s=p1和 我只是在阅读输入时遇到一些问题。 输入格式为
3
jam google foo code bar
20 15 40 30 60
foo bar
3 2
code jam
3 2
其中第一个整数是个案数,每个案例由两行组成。第一行包含产品列表,空格分隔,第二行包含列表中每个产品的初始猜测。
对于每种情况,我希望将第一行作为字符串向量,将第二行作为字符串 整数向量,我提出的代码如下:(使用注释进行修改)
ifstream inFile;
inFile.open("B-small-practice.in");
ofstream outFile;
outFile.open("B-small-practice.out");
inFile >> numCase;
inFile.ignore();
for (i = 0; i < numCase; i++) {
vector<string> v1;
vector<int> v2;
getline(inFile, a);
getline(inFile, b);
stringstream aa(a);
stringstream bb(b);
j = 0;
while (aa >> c) {
v1.push_back(c);
if (aa.peek() == ' ')
aa.ignore();
j++;
}
while (bb >> d) {
v2.push_back(d);
if (bb.peek() == ' ')
bb.ignore();
}
}
(所有变量都已定义)
但是,此代码在抛出错误&#34;超出范围后终止,&#34;而且我不确定,因为我认为我的代码在范围内。
有没有办法解决这个问题?或者我的代码有问题吗?