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。这种方法可以但是不够灵活