C ++:读取数字数据直到\ n

时间:2017-03-26 00:01:40

标签: c++

有没有获得数字数据,直到新的一行\n

我知道getline()函数在到达\n之前有效,但它是一个字符串函数,所以当我需要收集来自a的数字输入时,我不知道如何使用它文件。

我需要能够做到这一点,因为假设我在这样的文件中有数字数据:

23 42 523 423 53

13 24 242 24 23 23 523 52

42 24 12

如果我必须收集每一行的总和,那么我必须能够知道给定行何时结束(当达到\n时),如果不同于我在上面提供的样本,那么这是真的是要读取的未知行数。

1 个答案:

答案 0 :(得分:1)

你可以在int之后检查下一个字符来执行你的任务!

示例

#include <iostream>
#include <string>
#include<fstream>
using namespace std;

int main()
{
    ifstream in("File.txt");
    int count = 0;
    int temp = 0;
    char ch = '\0';
    int i = 1;
    while (!in.eof())
    {
        while (ch != '\n')
        {
            in >> temp;
            count = count + temp;
            in.get(ch);
            if (in.eof())
                break;
        }
        cout << "Line : " << i << " Sum : " << count;
        if (!in.eof())
        ch = '\0';
        count = 0;
        i++;
    }
    system("pause");
    return 0;

}

另一种方法是读取2D数组中的数据并对其每一行求和。

int arr[n][m];
int temp=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
in>>arr[i][j];

for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
 temp=temp+arr[i][j];
}
cout<<temp;
temp=0;
}