- 关于读取文本发现一个贼好用的组合 getc和ungetc组合进行字符是否合法的判断。
int freadNum(FILE *fp, int *i)
{
int tmp;
int count = 0;
while ((tmp = getc(fp)) != EOF)
{
if ((tmp >= '0'&& tmp <= '9') || (tmp == '+') || (tmp == '-'))
{
ungetc(tmp, fp);
break;
}
}
if (tmp != EOF)
{
count = fscanf(fp, "%d", i);
}
return count;
}
- 调用函数时:
main.cpp
int main ()
{
int i = 0;
FILE *fp;
fp = fopen("test.txt","r");
while (freadNum(fp, &i))
{
printf("%d", i);
}
fclose(fp);
return 0;
}