已知在正文文件test.txt中存放有120個記錄,每個記錄中只有一個數。在文件中,從第一個數開始,每四個數為一組,第一個數為不同商場的代號(順序號),其余三個數代表三類商品的營業額(萬元)。編寫程序,統計計算並向文件t2.dat輸出各
test.txt文件內容說明:商品代號為無符號整形數,營業額為浮點數,數據間用空格隔開。
<商場代號> <商品1營業額> <商品2營業額> <商品3營業額>
實例:
3023 56.98 98.2 36.81
3024 45.36 45.87 98.57
3025 13.96 79.58 45
3026 32.14 85.2 69.1
數據讀取方法:fscanf(FILE *fp,"%u %lf %lf %lf",&code,&turnover1,&turnover2,&turnover3);
t2.txt文件的內容:180.580000 394.050000 318.580000
程序如下:
#include <stdio.h>
#include <stdlib.h>
int main() {
unsigned int i,code,n;
double turnover1,turnover2,turnover3;
double sum1 = 0.0,sum2 = 0.0,sum3 = 0.0;
FILE *infp,*outfp;
infp = fopen("F:\\VC\\test.txt","rt");
outfp = fopen("F:\\VC\\t2.txt","wt");
if((infp == NULL) || (outfp == NULL)) {
printf("無法打開文件,請檢查。\n");
exit(1); // 程序退出碼1,表示打開文件錯。
}
printf("請輸入記錄數量:");
scanf("%d",&n);
for(i = 0;i < n;i++) {
fscanf(infp,"%u %lf %lf %lf",&code,&turnover1,&turnover2,&turnover3);
sum1 += turnover1;
sum2 += turnover2;
sum3 += turnover3;
}
fclose(infp);
fprintf(outfp,"%lf %lf %lf",sum1,sum2,sum3);
fclose(outfp);
return 0; // 程序退出碼0,表示正常結束程序。
}