gpt4 book ai didi

c - 使用 fscanf 过滤行

转载 作者:太空宇宙 更新时间:2023-11-04 02:01:59 24 4
gpt4 key购买 nike

我正在尝试读取表单的文件

A number,number
A number,number
[space] B number,number
etc

我只想读取以空格开头的行(即,在上面的示例中,仅读取最后一行)。我写了这个循环:

while ((g = fscanf(fp," %c %x,%d\n",&a,&b,&c) != EOF){
printf("%c %x,%d\n",a,b,c);
}

但是尽管我在字符串的开头放置了空格,它仍然输出所有行。我知道我可以在循环内过滤它们,但是否可以在 fscanf 中指定它?

最佳答案

OP:可以在fscanf中指定吗?
A:是的,但是很丑。使用最适合工作的工具。

使用fgets(),然后使用sscanf()进行扫描。

char buf[100];
char a;
unsigned b;
int c;
while (fgets(buf, sizeof buf, fp) != NULL) {
// Thank-you @Chris Dodd
if ((buf[0] == ' ') && (sscanf(buf, " %c%x,%d", &a,&b,&c) == 3)) {
printf("%c %x,%d\n",a,b,c);
}
}

关于c - 使用 fscanf 过滤行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26227457/

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