从文件中读取需要的数据(fscanf和fgetc配合使用)

这篇博客探讨了如何在C语言中验证4位数是否存在于逗号分隔的txt文件中。通过分析几种方法,包括fscanf与fgetc的结合使用,根据fscanf返回值跳过非法数据,以及使用strchr处理字符串,来实现从文件中正确识别和匹配4位数。
摘要由CSDN通过智能技术生成

2011-03-14 wcdj

 

问题:
如何验证一个4位数是否已存在于一个txt文件中。in.txt 里是任意4个4位数,但是他们由逗号隔开 1234, 2345, 3456, 4567 最后一个4位数里没逗号,现在输入一个4位数判断这个4位数是否存在于in.txt 里。

FILE * in;
int c;
int num;
scanf("%d",&c);
while((fscanf(in,"%d",&num))!=EOF)
{
  if (c==num)
  { printf("right");}
  else
  { printf("wrong");}
}

in.txt 里边是1234, 2345, 3456, 4567 最后一个4位数后边没逗号,这个只能认出第一个4位数1234。 不晓得逗号的识别要怎么做,加到%d前边吗? 前边后边都试了都不行啊,或者应该为第一个4位数验证一次? 可是又如何让第二次fscanf从第二个4位数开始呢?

 

思路:

当fscanf遇到非法数据时处理的方法:
[1] 使用fscanf,并用fgetc跳过非法数据
[2] 根据fscanf的返回值使用%*c跳过非法数据

 

方法1:
前三次用fscanf(in,"%d,",&num),最后一次fscanf(in,"%d",&num) 或者第一次用"%d" 后边的用",%d。这种方法可以但是不够灵活

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值