【问题标题】:C programming : Struct array construction while reading a file [closed]C编程:读取文件时结构数组构造[关闭]
【发布时间】:2013-06-02 22:39:31
【问题描述】:

我有一个问题,还有一些麻烦。我必须阅读带有一些值的文件文本。该文件如下所示:

104 Olympus FE200   244.90
226 JVC MG155   944.20
342 Pentax  OPTIOA20 344
509 Canon   SELPHYES1   299.20
974 Canon   IXUS800IS   444.50
.
.
.

344     Canon   EOS500D   500

不同的字符串用“\t”分隔。

我必须编写一个函数来读取所有这些并为我创建一个由以下定义的结构数组:

struct product{
int id;
char constructor[MAX_SIZE];
char product_name[MAX_SIZE];
double price;
};

我实际上可以读取该文件,但是使用 struct 和 tab 结构变得越来越困难。有什么想法吗?

【问题讨论】:

  • 太笼统的问题。你的问题是什么,你找不到选项卡,无法创建结构或结构数组?
  • 另外,您如何建议您知道产品名称的开始和结束位置?
  • 实际上产品定义如下:ID"\t"Constructor"\t"Name"\t"价格我的困难是实际获取值并将它们转换为整数,双打以便创建我的结构产品数组。
  • scanf("%d %s %s %lf", &p.id, p.constructor, p.product_name, &p.price); 有什么问题?
  • @Elazar:%s 最多可读取任何空白字符。它将停在一个不受欢迎的空间;它只需要在制表符或换行符处停止。而不是%s,您需要使用%[^\t\n]

标签: c arrays file struct


【解决方案1】:

使用scanf():

struct product p;
scanf("%d %s %s %lf", &p.id, p.constructor, p.product_name, &p.price);

如果空格是个问题,请使用%[^\t\n] 而不是%s,正如@icktoofay 所建议的那样。

【讨论】:

  • 非常感谢您的回答!事实上,我面临着另一个问题。
  • @user2446049 这是...?
  • 实际上没有,它是关于创建一个名为 stock 的结构,这将是一个产品选项卡,但我可以直接使用产品选项卡而不是定义另一个结构。
猜你喜欢
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多