C语言/如何从一个文件读取输入并将输出写入另一个文件

问题描述 投票:0回答:2

我从一个文件读取输入并将输出写入另一个文件时遇到问题。

这是我的代码

#include <stdio.h>
#include <math.h>

//Variables declarations
FILE *reportfile;
FILE *inputfile;
char ratioName[20];
char nameorganization[25];
int asset1,asset2,asset3;
int lia1,lia2,lia3;
float asset;
float liabilites;
float ratio;
int ave_asset;
int ave_liabilites;
float ave_ratio;
char year[5]
//char currentasset[15];
//char currentLia[30];
//char tekstRatio[45];


//void
void ReadingData(void);
void DoCalcs(void);
void Report(void);


int main(void) {
    ReadingData();
    DoCalcs();
    Report();


 return 0;
}

void ReadingData(void){
    inputfile = fopen("c:\\class\\current.txt" , "r");
    fgets(nameorganization,25, inputfile);
    fscanf(inputfile,"%d%d\n", &asset1, &lia1);
    fscanf(inputfile,"%d%d\n", &asset2, &lia2);
    fscanf(inputfile,"%d%d", &asset3, &lia3);
   fclose(inputfile);
}

void DoCalcs(void){
    ratio = asset / liabilites;
    ave_asset = (asset1 + asset2 + asset3) / 3;
    ave_liabilites = (lia1 + lia2 + lia3) / 3;
    ave_ratio = ratio / 3;
}

void Report(void){
    reportfile = fopen("c:\\class\\alimbetm_cr.txt","w");
    fprintf(reportfile,"\n");
    fprintf(reportfile,"Current Ratio Report",ratioName);
    fprintf(reportfile,"Year");
    //fprintf(reportfile,"Current Asset",currentasset);


}


//void GettingInfo(void){
    //printf("Please type ratio: ");
    //scanf();
//}

当我运行它时,它会将文件保存到新磁盘,但删除旧数据,这不是我想要的。我想要的是从一个文件读取输入/数据,然后将bot输入/输出写入另一个文件而不删除输入。

这是输入文件数据(current.txt)

Hi-Tech Leisure Products
47900       31007
34500        9100
57984       14822

这应该在新文件上如何

Hi-Tech Leisure Products
Current Ratio Report

                Current           Current          Current
Year            Assets            Liabilities      Ratio
----------------------------------------------------------
2010              47900             31007             1.54
2011              34500              9100             3.79
2012              57984             14822             3.91
----------------------------------------------------------
Average           46795             18310             3.08

This report produced by Raul Jimenez.

请帮助

c
2个回答
2
投票

在这种情况下,您需要使用"a"而不是"w",因为write功能用于清除旧数据并写入新数据


0
投票

发布的代码无法编译!第一个问题是此语句:

© www.soinside.com 2019 - 2024. All rights reserved.