首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对如何修复bug一无所知

对如何修复bug一无所知
EN

Stack Overflow用户
提问于 2019-06-04 16:30:15
回答 1查看 72关注 0票数 0

我正在使用fscanf扫描一个格式化的.srt文件,但是我遇到了一个无法解决的问题,因为我是C语言的新手。

我试着一个字符一个字符地读取文件,但最终弄得一团糟,我不能调试

代码语言:javascript
复制
if (input == NULL) 
    {
        printf("File doesn't exist, exiting!\n");
        exit(1);
    }
    printf("File opened!\n");

    int order; //number of line

    int csh; //hh
    int csm; //mm
    int css; //ss
    int csms; //ms

    int ceh; // same order as above
    int cem;
    int ces;
    int cems;

    char* text = calloc(256, sizeof(char));
    char c;

    int count = 0;
    while ((i = fscanf(input, "%d\n%d:%d:%d,%d --> %d:%d:%d,%d\n%10s", &order, &csh, &csm, &css, &csms, &ceh, &cem, &ces, &cems, text) > 0) )
    {
        count++;
        printf("%d\n%d:%d:%d,%d --> %d:%d:%d,%d\n%s",  order,  csh, csm, css,  csms,  ceh,  cem,  ces,  cems, text);

if (count == 2) 
        {
            int xyx;
            scanf_s("%d", &xyx);
        }




    }

所以我正在尝试读取一个格式化的文件,并将数据存储在一个双向链表中,文件看起来像这样

等。文件是一个很大的文件,整个“幻影威胁”的字幕我相信,所以我有两个问题,我的代码没有读完整个文本,当它随着时间的推移完成的时候,第二,它没有超过2的计数器,我用来测试程序的。

我得到了这个输出

EN

回答 1

Stack Overflow用户

发布于 2019-06-04 17:19:39

Mathieu的评论给了我一个线索,我用这个解决了我的问题:

代码语言:javascript
复制
while (i = fgetc(input) != EOF) 
    {
        while ((i = fscanf(input, "%d\n%d:%d:%d,%d --> %d:%d:%d,%d\n%[^'']", &order, &csh, &csm, &css, &csms, &ceh, &cem, &ces, &cems, text) > 0))
        {

            printf("%d\n%d:%d:%d,%d --> %d:%d:%d,%d\n%s\n", order, csh, csm, css, csms, ceh, cem, ces, cems, text);



        }
    }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56440132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档