gpt4 book ai didi

c - 使用 fscanf() 跳过字符串

转载 作者:行者123 更新时间:2023-12-02 07:27:20 35 4
gpt4 key购买 nike

输入文件是这样的,它在第一行有一个字符串,后跟一个整数,从第二行开始,它有一个字符串,后跟两个整数。我下面的代码运行良好,但有没有办法跳过字符串?我只是用一些字符数组 char sink[30] 扫描它。实际上我不需要这个值我怎么能使用 fscanf() 来跳过这个字符串并只读取整数。

#include<stdio.h>
#include<stdlib.h>

int main()
{
int v,i=0,f=1;
static int *p,*q;
FILE *fp;
char sink[30];
fp = fopen("some.txt","r");

while(!feof(fp))
{
if(f)
{
fscanf(fp,"%s %d",sink,&v);
p = (int *)malloc(sizeof(int)*v);
q = (int *)malloc(sizeof(int)*v);
f=0;
}
else
{
fscanf(fp,"%s %d %d",sink,&p[i],&q[i]);
i++;
}
}

fclose(fp);

printf("The input vertices are\n");
for(i=0;i<v;i++)
printf("%d %d\n",p[i],q[i]);
return 0;
}

最佳答案

为了丢弃 scanf 中的数据,您可以在格式说明符之间使用星号,例如 %*s%*c 等。这与 fscanf 相同。只需添加一个星号即可扫描并丢弃字符串:

fscanf(fp,"%*s %d",&v);

这将从文件中扫描一个字符串,将其丢弃,然后扫描并将一个整数分配给 v。您可以对第二个 fscanf 执行相同的操作:

fscanf(fp,"%*s %d %d",&p[i],&q[i]);

关于c - 使用 fscanf() 跳过字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26528212/

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