【问题标题】:Converting string from text file into numbers [duplicate]将字符串从文本文件转换为数字[重复]
【发布时间】:2016-08-19 12:01:12
【问题描述】:

我在处理 C 中的文件时遇到了一些困难。我已经知道如何在 C 中读取和写入文件,但我能做的只是读取和追加。如果我想读取字符串行并将它们转换为数字(int),我该怎么做?

例如:

mytextfile.txt 包含这些数据:

12345 30 15
 2111  9 20
  321 17  7

现在对于每一行,我想使用第一个数字作为价格变量,下一个数字作为数量,最后一个数字作为折扣。我的问题是如何将三个数字存储在一个变量中,以便我可以将它们用作整数(或字符串)?

我的输出应该是根据价格、数量和折扣计算得出的金额,每行列出一个值(结果)...

【问题讨论】:

标签: c io


【解决方案1】:
#define MAXLINE 80

typedef struct {
    double cost, qty, disc;
} item;

int readitem(FILE *fp, item *itm)
{
    char buf[MAXLINE];

    if (fgets(buf, MAXLINE, fp) == NULL)
        return 0;

    return sscanf(buf, "%lf%lf%lf", &itm->cost, &itm->qty, &itm->disc);
}

readitem 函数将获取下一条记录,并将其读入itm 指针。您可以循环调用该函数以获取所有项目:

#define MAXITEMS    255

item arr[MAXITEMS];
size_t i;
FILE *fin;

for (i = 0; i < MAXITEMS && readitem(fin, arr + i); ++i)
    ;

【讨论】:

  • 非常感谢...在 C 编程方面我真的有很多东西要学...它既古老又困难又具有挑战性...
猜你喜欢
  • 2014-10-06
  • 1970-01-01
  • 2022-10-17
  • 1970-01-01
  • 1970-01-01
  • 2022-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多