gpt4 book ai didi

文本文件中的货币换算数据库结构

转载 作者:行者123 更新时间:2023-11-30 17:32:32 24 4
gpt4 key购买 nike

我一直在开发一个数据结构程序,该程序读取不同货币的文件,然后调用该文件进行转换。我已经连续几天对此进行了研究,并尝试了 fgets、fscanfs 等,但我在这一点上迷失了方向,因为我对编程还很陌生。

数据。文件概述在单独的行中,如下所示:

dollar 1.00

yen 0.0078

franc 0.20

mark 0.68

pound 1.96

到目前为止我的代码:

  typedef struct {
string currency;
double rate;
} currencyT;

typedef struct {
currencyT cur[MaxCurrencyTypes];
int nCurrency;
} *currencyDB;


static currencyDB ReadDataBase(void);
static ReadOneLine(FILE *infile, currencyDB db);

static currencyDB ReadDataBase(void)
{
FILE *infile;
currencyDB db;
int nCurrency;

db = New(currencyDB);
infile = fopen(ExchangeFile, "r");
while (ReadOneLine(infile, db));
fclose(infile);
return(db);
}

static ReadOneLine(FILE *infile, currencyDB db)
{
currencyT cur;
char termch, currency;
double rate;
int nscan, nCurrency;


nCurrency = 0;

while(1) {
nscan = fscanf(infile, "%20s %f%c", db->cur[nCurrency].currency,
&db->cur[nCurrency].rate, &termch);
if(nscan = EOF) break;
if(nscan != 3 || termch != '\n') {
Error("Improper file format");
}
nCurrency++;
}
db->nCurrency = nCurrency;
}


static void ProcessExchange(currencyDB db)
{

}



main()
{
currencyDB currencies;

currencies = ReadDataBase();

ProcessExchange(currencies);


}

最佳答案

首先参见 8 和 9。

  1. MaxCurrencyTypes 未声明,我们假设

    #define MaxCurrencyTypes (5)
  2. string 未声明,我们假设

    typedef char * string;
  3. currencyDB 是指针类型,建议改为声明为结构类型

    typedef struct {
    currencyT cur[MaxCurrencyTypes];
    int nCurrency;
    } currencyDB; // Drop *
  4. static ReadOneLine() 应使用显式返回类型。

    static int ReadOneLine()
  5. int nCurrency; 未在 ReadDataBase() 中使用。

  6. db = New(currencyDB) 中的
  7. New() 未声明或定义。假设为*db分配未初始化的内存。

  8. ExchangeFile 未声明。

  9. if (nscan = EOF) -> if (nscan == EOF)

  10. ReadOneLine() 需要返回一个值。

  11. main() 应明确声明返回类型和参数。

    int main(void)  

关于文本文件中的货币换算数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24102448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com