【发布时间】:2013-09-13 00:05:41
【问题描述】:
我有一个包含 ff 数据的平面文件:
date;quantity;price;item
我想使用以下结构创建数据记录:
typedef struct {
char * date, * item;
int quantity;
float price, total;
} expense_record;
我创建了以下初始化方法:
expense_record initialize(char * date, int quantity, char *price, char *item) {
expense_record e;
e.date = date;
e.quantity = quantity;
e.item = item;
/* set price */
return e;
}
我的问题是如何从char *price 将价格设置为float(根据结构的要求)。我得到的最接近的,即没有产生编译器错误的是
e.price = *(float *)price
但这会导致分段错误。
谢谢!
【问题讨论】:
-
你将什么作为参数传递给
initializeprice? -
所以您有一个人类可读格式的价格,并希望将其转换为浮点数?在这种情况下,您必须对其进行解析,如this question ...类型转换不是用于此目的...
-
你用
quantity做什么? -
@us2012 @ppeterka66 是的,我有一个人类可读格式的
price,例如10.50 作为char * price传递给initialize方法。 -
@Rohan,我会想在设置
price之后使用quantity来计算total,即e.total = quantity*price