C 处理和分析文件中的4行数据
我需要在文本文件中整理一组4行数据,例如C 处理和分析文件中的4行数据,c,macos,terminal,while-loop,C,Macos,Terminal,While Loop,我需要在文本文件中整理一组4行数据,例如 [DATA] [DATA] [DATA] [DATA] [BLANK LINE] [DATA] .... 我的问题是,如果只有一组4行数据,我的lower函数最终会工作,但当有多组数据时,它会冻结。是什么导致了这个问题?请让我知道,如果你需要更多的代码 非常感谢 int i=0; while(i < (numGames + empLines)) { fgets(gameLine, sizeof(gameLine), input2);
[DATA]
[DATA]
[DATA]
[DATA]
[BLANK LINE]
[DATA]
....
我的问题是,如果只有一组4行数据,我的lower函数最终会工作,但当有多组数据时,它会冻结。是什么导致了这个问题?请让我知道,如果你需要更多的代码
非常感谢
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++;
}
inti=0;
而(i<(numGames+雇员))
{
fgets(游戏线,游戏线大小,输入2);
如果(游戏线[0]='\n')
{
继续;
}
sscanf(游戏线,“%s%d%d%s%d%d”、teamName1和teamGoal1和teamBehind1、teamName2和teamGoal2和teamBehind2);
int j=0;
而(j > P>最可能的问题是程序如何解析空白行的新行字符。“\n”不必作为文本文件的第一个字符出现,请更改程序首先读取该行的方式。例如,在遇到“\n”或“\r”之前,使用fgetc()确定它是数据行还是空行。如果遇到非终止字符,则该字符是数据行,将指针倒带到行的开头,并作为格式化字符串读取
希望有帮助:)根据您的描述,我不知道这是答案,但根据您的代码:
while(i < (numGames + empLines))
{
fgets(gameLine, sizeof(gameLine), input2);
if (gameLine[0] == '\n')
{
continue;
}
i++;
}
while(i<(numGames+雇员))
{
fgets(游戏线,游戏线大小,输入2);
如果(游戏线[0]='\n')
{
继续;
}
i++;
}
如果文件的最后一行只是一个“\n”,那么您将永远循环。我永远不会递增,而且您也不会检查feof()或查看fgets()返回值。没有足够的信息提供帮助。不要只是添加更多的代码,试着缩小问题范围并打印出问题部分。添加printfs()以查看您的目标是一个很好的第一步。@John3136我在整个代码中添加了printfs(),我发现当有多组4行数据时,代码不希望退出while循环,因此冻结。您的示例中没有显示这些内容。哪个while循环是问题:第一个还是第二个?numGames、empLines和numTeams是如何设置的?在无处有一个<代码>破解>代码:这个循环是什么?我们都知道,<<代码> > <代码>循环可以实现为<代码>,而循环,你在这里展示得很精彩。但是我可以问一下为什么吗?至于你的问题,你确定空行真的是空的吗?没有其他空格或标签?换行符实际上是一个'\n'
,而不是“\r\n”
(UNIX与Windows的行结束符)?