从.txt文件读取输入输出C++

input output C++ reading from a .txt file

本文关键字:输入输出 C++ 读取 文件 txt      更新时间:2023-10-16

如何将其打印到输出文件中,并在4周内按周和整周计算这些人的工资总和和平均值。。。

示例txt文件。。

doe       jane
williams  tom
lons      adams
45.7   56.3   345.6  344.7  // week 1
43.6   89.0   543.6  12.5   // week 1  person 2
90.5   78.0  345.4  345.6  //week 1 person 3
67.5   34.5   56.6   34.5   // week2 person 1
etc....for 4 weeks..

我知道有一种更简单的方法可以使用循环吗?我可以得到一些帮助,谢谢:)

这就是我目前拥有的

#include<iostream>
#include<fstream>
#include<cstdlib>
#include<string>
#include<iomanip>
using namespace std;
int main()
{
ifstream infile;
ofstream outfile;
double s1, s2, s3 , s4 ,s5;
double t1, t2,t3,t4,t5;
double w1, w2,w3,w4,w5;
string personlast,personfirst,personlast2,personfirst2,personlast3,personfirst3;
double sum, average;
int numberpeople, numberofweeks;
infile.open("data.txt");
outfile.open("output.txt");
outfile<< fixed<< showpoint;
outfile<< setprecision(2);
infile>> numberpeople >> personlast >> personfirst >> personlast2 >> personfirst2>>
personlast3 >> personfirst3 >> numberofweeks;
outfile<< " The number of salespeople are " << numberpeople <<"they are" <<
personlast << personfirst << "and " <<
personlast2 << personfirst2 <<
"and " << personlast3 << personfirst3 <<"Number of weeks = " << numberofweeks;

infile>> s1 >> s2 >> s3 >> s4 >> s5;
outfile <<" sales for week 1  "<< " for" << personlast << personfirst << s1 << s2
<< s3 << s4 << s5 << endl;
sum= s1+s2+s3+s4+s5;
outfile <<"Sum of first week is " << sum<<endl;
infile >> t1 >> t2 >> t3 >> t4 >> t5;
outfile <<" sales for week 1  "<< " for" << personlast2 << personfirst2 << t1 << t2 
<< t3 << t4 << t5 <<endl;

infile.close();
outfile.close();
return 0;

我不会为你做家庭作业,因为我不想,但我会给你一些开始的东西。基本概念是在文件上循环,读取每一行。使用类似(伪代码)的控件;

while (string = readline() != EOF)
{
//split string on delimiters in this case spaces
if (string piece is not an int)
{
// this is a name
// set first and last name here
}
if (string piece is an int)
{
// set ints,
}
}

您还需要一些结构(如果您已经了解了这些结构,那么这些结构可能就是类)来保存数据。如果可以使用字符串,请使用它们而不是char*。如果使用char*,则必须动态声明一个char数组。如果允许的话,你也可以把它们做成char[64] first_name;

struct person {
char *first_name;
char *last_name;
numbers[4] numbers;
};
struct numbers {
float item1;
float item2;
float item3;
float item4;
};

当您读取数据时,您需要将其读取到人员结构的实例中。