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

时间:2012-11-17 01:02:08

标签: c++ input output

如何将其打印到输出文件中,并按周计算这些人员工资的总和和平均值,并计算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;

1 个答案:

答案 0 :(得分: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;
};

当您阅读数据时,您需要将其读入人员结构的实例。