我正在尝试将csv文件中的数据读入结构中 . 该结构包含int,char和float成员 . 我收到错误,除了char成员 . 我对C很新,所以感谢你的帮助!
来自csv文件“订单”的数据:
0, cafe, 3.90, 0
0, espresso, 3.50, 0
...
我的结构:
typedef struct {
int position;
char name[20];
float price;
int counter;
}drink;
void init(drink *pt)
{
FILE *fp;
char buf[50];
int i = 0, j;
fp=fopen("Order", "r");
while( fgets(buf,sizeof(buf),fp) != NULL)
{
strcpy(pt[i].position, strtok(buf,","));
strcpy(pt[i].name, strtok(NULL,","));
strcpy(pt[i].price, strtok(NULL,","));
strcpy(pt[i].counter, strtok(NULL,","));
++i;
}
}
int main()
{
int number = NR;
int d=0;
drink bar[number];
drink *pt = &bar[0];
welcome();
init(pt);
...
return 0;
}
3 回答
你没有使用strcpy正确 . 您应该只将它与char缓冲区一起使用,而不是与整数和浮点数一起使用 .
有关它的更多信息,请阅读man strcpy .
不要使用
strcpy()
将字符串复制到int
. 而是转换它 .(注意:省略了各种错误检查)
启用所有编译器警告 . 这将节省您的时间,因为您的编译器应该 grab 它 .
如果您收到错误,编译时间或运行时间,请发布错误而不是将错误描述为"getting errors back" .