2012-11-17 214 views
0

閱讀我怎麼可以打印此到一個輸出文件,並通過周和總體周4周計算這些人的工資總和與平均值...輸入輸出C++從txt文件

例如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; 
+0

它可能有助於說明行內每個數字代表什麼。 – jma127

+0

爲什麼不使用'std :: vector'-s?用'for'循環? –

+0

@BasileStarynkevitch 20代表說它是爲C++類,你不能使用'std :: vector' – evanmcdonnal

回答

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[64] first_name;

struct person { 
    char *first_name; 
    char *last_name; 
    numbers[4] numbers; 
}; 

struct numbers { 
    float item1; 
    float item2; 
    float item3; 
    float item4; 
}; 

當您讀取數據時,您需要將其讀入人員結構的實例中。

+0

@evanmcdonnal ....你認爲今晚通過電子郵件給我輔導..我會願意爲你的時間支付你20美元一小時.. – user1766270

+0

謝謝你的代碼:)但是..我需要進一步解釋你的意思..就像我提到如果你今晚有空,真的很感謝一些輔導。 – user1766270

+0

@ user1766270首先編寫一些代碼,使用循環逐行讀取文件。如果您取得進展並編輯您的文章,我會提供進一步的幫助。看看這個開始http://www.cplusplus.com/doc/tutorial/files/ – evanmcdonnal