将多行写入输出文件 我正在学习如何在C++中编程。我的程序应该从输入文件中读取由字符串值和双精度值组成的行,然后将字符串和每行双精度值的平均值写入输出文件。字符串是id号,双倍值的数量可能因行而异
例如: 输入文件:将多行写入输出文件 我正在学习如何在C++中编程。我的程序应该从输入文件中读取由字符串值和双精度值组成的行,然后将字符串和每行双精度值的平均值写入输出文件。字符串是id号,双倍值的数量可能因行而异,c++,vector,file-io,C++,Vector,File Io,例如: 输入文件: 98751,2,3,4 93245,5,7,8,9 74589,10,11 输出文件: 98752.5 93246.8 7458 10 我使用一个向量来保存双值的值,并计算值的总和。我的问题是,当我的程序读取输入文件时,它确实知道一行何时结束,新行何时开始,并输出所有双精度值和字符串值(即id号)的平均值。当一行结束时,我该如何告诉程序?以下是我迄今为止的代码: #include <fstream>; #include <iostream>; #in
98751,2,3,4 93245,5,7,8,9 74589,10,11 输出文件: 98752.5 93246.8 7458 10 我使用一个向量来保存双值的值,并计算值的总和。我的问题是,当我的程序读取输入文件时,它确实知道一行何时结束,新行何时开始,并输出所有双精度值和字符串值(即id号)的平均值。当一行结束时,我该如何告诉程序?以下是我迄今为止的代码:
#include <fstream>;
#include <iostream>;
#include <string>;
#include <vector>;
using namespace std;
int main()
{
ifstream inFile;
ofstream outFile;
string id;
double num;
double sum = 0;
string line;
vector<double> avgs;
inFile.open("in.txt");
outFile.open("out.txt");
if (inFile)
{
inFile >> id >> num;
//read the values from the input file into the vector
while(inFile >> num)
{
avgs.push_back(num);
}
for (int n : avgs)
{
sum += n;
}
outFile << " " << id << " " << avgs.size() << " " << (sum / avgs.size()) << endl;
}
else
{
cout << "Error" << endl;
}
inFile.close();
outFile.close();
return 0;
#包括;
#包括,;
#包括,;
#包括,;
使用名称空间std;
int main()
{
河流充填;
出流孔的直径;
字符串id;
双数;
双和=0;
弦线;
向量平均值;
infle.open(“in.txt”);
outFile.open(“out.txt”);
如果(填充)
{
infle>>id>>num;
//将输入文件中的值读入向量
而(填充>>num)
{
平均推回(num);
}
用于(国际编号:平均值)
{
总和+=n;
}
outFile您能详细说明一下吗?我在输出文件操作数的末尾写入了endl。您的标题表明您在每行基础上写入数据时有问题,可以使用ifstreamsgetline
,这将对您有所帮助。该问题要求您逐行读取,但您的程序不会这样做。您需要调查getline
,以便一次读取一行,然后istringstream
读取刚刚读取的行中的数字。您能详细说明一下吗?我在输出文件操作数的末尾写入了endl。您的标题表明您在每行基础上写入数据时有问题,可以使用ifstreamsgetline
,这将对您有所帮助。问题要求您逐行读取,但您的程序不会这样做。您需要调查getline
一次读取一行,然后istringstream
读取刚刚读取的行中的数字。