有没有获得数字数据,直到新的一行\n
?
我知道getline()
函数在到达\n
之前有效,但它是一个字符串函数,所以当我需要收集来自a的数字输入时,我不知道如何使用它文件。
我需要能够做到这一点,因为假设我在这样的文件中有数字数据:
23 42 523 423 53
13 24 242 24 23 23 523 52
42 24 12
如果我必须收集每一行的总和,那么我必须能够知道给定行何时结束(当达到\n
时),如果不同于我在上面提供的样本,那么这是真的是要读取的未知行数。
答案 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;
}