首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操作和分析文件中的4行数据

操作和分析文件中的4行数据
EN

Stack Overflow用户
提问于 2012-09-21 11:28:10
回答 2查看 43关注 0票数 0

我需要对文本文件中的一组4行数据进行排序,例如..

代码语言:javascript
复制
[DATA]
[DATA]
[DATA]
[DATA]
[BLANK LINE]
[DATA]
....

我的问题是,如果只有一组4行数据,下面的函数就会正常工作,但当有多组数据时,它就会冻结。可能是什么原因导致了这个问题?如果你需要更多的代码,请让我知道。

非常感谢。

代码语言:javascript
复制
int i=0;
while(i < (numGames + empLines))
{
    fgets(gameLine, sizeof(gameLine), input2);
    if (gameLine[0] == '\n')
    {
        continue;
    }
    sscanf(gameLine, "%s %d %d %s %d %d", teamName1, &teamGoal1, &teamBehind1, teamName2, &teamGoal2, &teamBehind2);
    int j =0;
    while (j < numTeams)
    {



                                          ...



                 }
                k++;
            }
            break;
        }
        j++;
    }
    i++;
}
EN

回答 2

Stack Overflow用户

发布于 2012-09-21 15:05:37

从你的描述中,我不知道这就是答案,但从你的代码中:

代码语言:javascript
复制
while(i < (numGames + empLines))
{
    fgets(gameLine, sizeof(gameLine), input2);
    if (gameLine[0] == '\n')
    {
        continue;
    }
    i++;
}

如果文件的最后一行只有一个'\n',似乎你将永远循环。我永远不会递增,你也不会检查feof()或者fgets()的返回值。

票数 1
EN

Stack Overflow用户

发布于 2012-09-21 12:03:51

最有可能的是,问题出在程序如何解析空行的换行符。“\n”不一定要作为文本文件的第一个字符出现,请先更改程序读取该行的方式。例如,使用fgetc()确定它是数据行还是空行,直到遇到'\n‘或'\r’为止。如果遇到非终止字符,则它是一个数据行,请将指针倒回到该行的开头,并读取格式化字符串。

希望它能有所帮助:)

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

https://stackoverflow.com/questions/12523841

复制
相关文章

相似问题

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