从文本文件中读取并立即打印每个数字后,在读取所有文件

时间:2017-09-20 15:54:23

标签: c++

所以我想从文件中读取数字,文件如下:

8
9 5 7 -5 13 -4 11
7 5 -3 12 -5 17 -3
25 7 12 -3 5 -5 7 -5 3
14 5 12 -3 10 -7 8
5 1 -40
33 5 15 -5 9 -3 8
11 5 -12 8 -5 12 -3
13 5 3 -4 25 -5 3

我需要所有的数字,不在第一行,而不是第一行,这是我的代码:

#include <iostream>
#include <fstream>


using namespace std;

int times[99];

int n, k, t;

int main()
{
    ifstream file("U1.txt");

    file >> n;

    for (int i = 0; i < n; i++)
    {
        file >> k >> t;
        for (int j = 0; j < t; j++)
        {
            file >> times[j];
            cout << times[j] << " ";
        }
        cout << endl;
    }

    for (int i = 0; i < 99; i++)
    {
        cout << times[i] << " ";
    }

    return 0;
}

在阅读时输出每一个数字给出我想要的东西:

7 -5 13 -4 11
-3 12 -5 17 -3
12 -3 5 -5 7 -5 3
12 -3 10 -7 8
-40
15 -5 9 -3 8
-12 8 -5 12 -3
3 -4 25 -5 3

由于某种原因,我阅读完所有内容后的输出就是这样(我不介意0,我知道他们为什么在这里):

3 -4 25 -5 3 -5 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 个答案:

答案 0 :(得分:0)

每次启动内部循环时,都会将j重置为0,因此在读取每一行后,您将覆盖先前写入数组的内容。这会导致您的数组仅包含文件的最后一行 您应该创建另一个变量,在外部循环开始之前将其初始化一次,然后在内部循环内增加它。