从txt文件中读取特定输入

时间:2014-08-20 01:24:00

标签: c++ parsing

这是来自谷歌练习题,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;而且我不确定,因为我认为我的代码在范围内。

有没有办法解决这个问题?或者我的代码有问题吗?

0 个答案:

没有答案