int fscanf(FILE*stream, const char* format, …)
功能: 从stream流中连续读取能够匹配format式的字符到参数列表中对应的变量里。
参数: “stream”是FILE指针类型变量,它指向一个真实的流对象。
“format”是C字符串,由“空”、“非空”及“转换符”组成。fscanf 字符具体式为%[*][width][modifiers]type。。
“…”是与“format”中“转换符”对应变量地址的列表,两地址间用逗号隔开。
返回:成功时返回从流中读取成功的数据的个数。失败时返回-1(Debian Linux)。
头文件:<stdio.h>
fscanf()的format参数允许的式为:“%[*][width][modifiers]type”。[]中的内容根据需要供选,可缺省,%type必须要有,不可省。
%:是format参数的起始符号,不可缺少。
%[modifiers]type:表一种类型转换符,如%hd表示short int类型转换符。它是format的核心。转换符的作用是将“数据”转换为转换符代表的数据类型,这里提到的数据必须能够转换为转换符代表的数据类型,fscanf读取数据时也只匹配这样的数据。如pF指向一文件,其中只包含数据[123 [空] 456],用“fscanf(pF, “%d”, &m);”语句是将123这个数据转换为转换符”%d”所代表的数据类型即整型后保存到&m地址中去。
%*[modifiers]type: 表示跳过stream流中能够被转换为[modifiers]type所代表数据类型的数据不读,如在以上的文件中,用“fscanf(pF, “%*d%d”, &m);”就可以跳过对123的读取,而将456转换为整型后保存到&m地址中。%*m[modifiers]type表跳过stream流中能够被转换为[modifiers]type所代表数据类型的m个“字符”不读。如“fscanf(pF,“%*1d%d”, &m);”是将23转换为整型后保存到&m地址中去。
%width[modifiers]type:表示从stream流中读取width长度的“字符”来转换为[modifiers]type对应数据类型的数据。如“fscanf(pF, “%1d”, &m);”是将1转换为整型后保存到&m地址中去。
fscanf()可以用于读取文件流中的数据。现设有一个文件内容如下,

Figure1:ffReadFile.dat文件
拥有3个数字行的最后一个数字决定拥有两个数字的行数。用fscanf()函数读取其内的内容以笔记到fscanf()函数的用法。
用fopen成功打开ffReadFile.dat文件后,单用以下语句读取文件的第一行内容:
re = fscanf(pF, "%d%d%d", &oLine.p, &oLine.l, &oLine.x);
if( 3 == re){
//Print on stdout
printf("%d\t%d\t%d\n", oLine.p, oLine.l, oLine.x);
}此时,可以正确的打印第一行内容到屏幕之上。fscanf()函数读取第一行三个数据的过程如下:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-22018-1.html
这个不是很懂
第七舰队扫雷大队不是盖的