fscanf函数的用法
的有关信息介绍如下:fscanf是C语言最基本的格式化输入函数之一,它和scanf都属于可变参数函数,但不同于scanf,它可以指定输入的缓存文件的,在stdio.h完整的声明形式为:
int __cdecl fscanf(FILE * __restrict__ _File,const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
其中第一个参数_File文件对象的标识流的指针,当其值为stdin时功能相当于scanf。
第二个参数_Format格式化输入字符串,后面跟随需要接收输入的变量地址。
fscanf第一个参数需要一个文件指针,为了查看实验效果,这里先新建一个名为test.txt的文本文件,放在源代码的文件夹,输入如下内容:
123123.456Hello world !
要对文件操作,必须将该文件打开:
fp = fopen("test.txt", "r");
同时使用完毕后不要忘记使用fclose关闭文件。
test.txt第一行保存的是一个整数,所以可以使用fscanf先读取一个整数:
fscanf(fp, "%d", &num);
test.txt第二行保存了一个浮点数,按照浮点数的格式进行读取:
fscanf(fp, "%f", &fNum);
需要注意的是,由于浮点数位于第二行,所以要想读取这个浮点数,应当先把第一个数读完,否则读取的回事123.000000
同样可以使用类似的方法读取位于第三行的字符串:
fscanf(fp, "%s", str);
但是,从程序的运行结果发现,第三行存储的是Hello world !,而实际运行结果只有“Hello”,这表明fscanf遇到空格会终止本次读操作。
当将fscanf第一个参数设定为stdin时,将实现和scanf函数相同的效果:
fp = stdin;//设置fp为标准输入 fscanf(fp, "%d", &num);//从fp读取一个整数
1、fscanf第一个参数传入的必须是FILE指针,这个文件可以使一般的文档,也可以是设备。
2、从文件中读取时需要先打开文件。
3、从文件中读取数字或字符串时,应注意被读取内容的位置。
4、fscanf遇到空格会结束一次读操作。
5、当fscanf第一个参数设置为stdin时可以实现scanf相同的效果。