简体   繁体   English

读取:用C分隔fscanf

[英]read : separated fscanf in C

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);

example input 输入示例

C0001:Lunch Deal Set A:10.99:Burger and drink

My output is: 我的输出是:

Code  : C0003 Nugget and drink
Name     : Teatime Saver
Price    : RM 6.99
Description    :  Nugget and drink

But I want the Code to be just C0003, please enlighten me where exactly did I do wrong? 但是我希望代码仅为C0003,请告诉我我在哪里做错了? Because I've been trying to get it right the past few days. 因为过去几天来我一直在努力解决问题。 Thank you! 谢谢!

I found the answer. 我找到了答案。 It has to be initialized to 6. Thank you for the kind comments everyone. 必须将其初始化为6。谢谢大家的友好评论。

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM