gpt4 book ai didi

fscanf() 可以读取空格吗?

转载 作者:太空狗 更新时间:2023-10-29 17:14:46 32 4
gpt4 key购买 nike

我已经有了一些使用 fscanf() 读取文本文件的代码,现在我需要修改它,以便以前无空格的字段需要允许空格。文本文件基本上是这样的形式:

title: DATA
title: DATA
etc...

这是基本上使用fgets(inputLine, 512, inputFile) 解析的; sscanf(inputLine, "%*s %s", &data);,读取DATA字段并忽略标题,但现在部分数据字段需要允许空格。我仍然需要忽略标题和紧随其后的空格,然后读入该行的其余部分,包括空格。

有没有办法用 sscanf() 函数做到这一点?

如果不是,我可以对代码进行哪些最小更改以正确处理空格?

更新:我编辑了问题,将 fscanf() 替换为 fgets() + sscanf(),这是我的代码实际使用的。当我第一次写这个问题时,我真的不认为它是相关的,这就是为什么我将它简化为 fscanf()。

最佳答案

如果您不能使用 fgets(),请使用 %[ 转换说明符(带有“排除选项”):

char buf[100];
fscanf(stdin, "%*s %99[^\n]", buf);
printf("value read: [%s]\n", buf);

但是 fgets() 更好。


编辑:带有 fgets() + sscanf() 的版本

char buf[100], title[100];
fgets(buf, sizeof buf, stdin); /* expect string like "title: TITLE WITH SPACES" */
sscanf(buf, "%*s %99[^\n]", title);

关于fscanf() 可以读取空格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1950057/

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