从文件

时间:2015-11-22 23:02:28

标签: c++ c++11

我有点问题。我尝试将文件中的一些数字和字母读入我的程序。该文件看起来总是这样:

15 12 7
8 5 A
12 7 B
4 9 C

等。

我想从数组的第二行开始保存数据,即:array [8] [5] = A

所以现在我得到了关于如何从文件中读取的示例代码:

int main(int argc, char** argv) {
    if(argc < 2) {
    cout << "Please insert file-name" << endl;
    return 1;
    }

    ifstream input(argv[1]);
    int i(0), temp;

    while(input >> temp) {
    cout << ++i << ". Number: " << temp << endl;
    }
    return 0;
}

我现在的问题是,如果我使用(我的想法是将它们放在一个数组中,然后将它们分类为2d数组):

while(input >> tmp)

它在第一个字母处停止,因为tmp来自int类型。但是如果我使用char代替它,它会保存每个角色,所以在12中我得到1和2 ......

使用(将它们直接导入我的2d数组):

while(input >> a >> b >> c)

(虽然c来自char类型)并没有得到任何输出。 我觉得解决方案不是很难,但不知何故我没有得到解决方案。如果有人可以帮助我,我会很高兴! TY

1 个答案:

答案 0 :(得分:0)

也许这会有效,但是,我不确定它是否会正确处理无效输入:

while(input)
{
    if(input >> temp) // was extraction to temp successful?
        cout << ++i << ". Number: " << temp << endl;
    else // otherwise
    {
        input.ignore(); // extract one character
        input.clear(); // clear error flags
    }
}