gpt4 book ai didi

c - 使用 fscanf() 读取一行时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:00:54 25 4
gpt4 key购买 nike

我正在尝试使用以下代码读取一行:

while(fscanf(f, "%[^\n\r]s", cLine) != EOF )
{
/* do something with cLine */
}

但不知何故,我每次都只得到第一行。这是阅读一行的坏方法吗?我应该修复什么才能使其按预期工作?

最佳答案

使用 fscanf() 函数几乎总是是个坏主意,因为它会在失败时将文件指针留在未知位置。

我更喜欢使用 fgets() 获取每一行,然后使用 sscanf()。然后您可以继续检查您认为合适的读入行。像这样的东西:

#define LINESZ 1024
char buff[LINESZ];
FILE *fin = fopen ("infile.txt", "r");
if (fin != NULL) {
while (fgets (buff, LINESZ, fin)) {
/* Process buff here. */
}
fclose (fin);
}

fgets() 似乎是您要执行的操作,读取字符串直到遇到换行符。

关于c - 使用 fscanf() 读取一行时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44848066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com