struct Combo {
    float price;
    char code[5];
    char description[100];
    char name[50];
    int combo_trans;

} combo, combo1, combo2, combo3, combo4, combo5, csum;

fscanf(cfp, "%5[^:]:%[^:]:%f:%[^\n]\n", combo1.code, combo1.name, &combo1.price, combo1.description);

    printf("Code  : %s\n",combo1.code);
    printf("Name     : %s\n",combo1.name);
    printf("Price    : RM %.2f\n",combo1.price);
    printf("Description    : %s\n",combo1.description);


输入示例

C0001:午餐套餐A:10.99:汉堡包和饮料


我的输出是:

编码:C0003矿块和饮料
名称:下午茶节电器
价钱:RM 6.99
描述:矿物质和饮料


但是我希望代码只是C0003,请告诉我我到底在哪里做错了?因为过去几天来我一直在努力解决问题。谢谢!

最佳答案

我找到了答案。必须将其初始化为6。谢谢大家的友好评论。

struct Combo {
    float price;
    char code[6];
    char description[100];
    char name[50];
    int combo_trans;

} combo, combo1, combo2, combo3, combo4, combo5, csum;

10-06 02:14