词条 | fscanf |
释义 | fscanf函数的一般形式函数名: fscanf 功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。 用 法: int fscanf(FILE *stream, char *format,[argument...]); int fscanf(文件指针,格式字符串,输入列表); for example: FILE *fp; char a[]; int b; double c; fscanf(fp,"%s%d%lf",&a,&b,&c) 返回值:整型,数值等于[argument...]的个数 格式字符说明常用基本参数对照: %d:读入一个十进制整数. %i :读入十进制,八进制,十六进制整数,与%d类似,但是在编译时通过数据前置来区分进制,如加入“0x”则是十六进制,加入“0”则为八进制。例如串“031”使用%d时会被算作31,但是使用%i时会算作25. %u:读入一个无符号十进制整数. %f %F %g %G : 用来输入实数,可以用小数形式或指数形式输入. %x %X: 读入十六进制整数. %o': 读入八进制整数. %s : 读入一个字符串,遇空格结束。 %c : 读入一个字符。无法读入空值。空格可以被读入。 附加格式说明字符表修饰符说明 L/l 长度修饰符 输入"长"数据 h 长度修饰符 输入"短"数据 程序例例一#include <stdlib.h> #include <stdio.h> int main(void) { int i; printf("Input an integer: "); /* read an integer from the standard input stream */ if (fscanf(stdin, "%d", &i)) printf("The integer read was: %d\",i); else { fprintf(stderr, "Error reading an \\ integer from stdin.\"); exit(1); } return 0; } 返回EOF如果读取到文件结尾。 例二附:MSDN中例子 Example /* FSCANF.C: This program writes formatted * data to a file. It then uses fscanf to * read the various data back from the file. */ #include <stdio.h> FILE *stream; void main( void ) { long l; float fp; char s[81]; char c; stream = fopen( "fscanf.out", "w+" ); if( stream == NULL ) printf( "The file fscanf.out was not opened\" ); else { fprintf( stream, "%s %ld %f%c", "a-string", 65000, 3.14159, 'x' ); /* Set pointer to beginning of file: */ fseek( stream, 0L, SEEK_SET ); /* Read data back from file: */ fscanf( stream, "%s", s ); fscanf( stream, "%ld", &l ); fscanf( stream, "%f", &fp ); fscanf( stream, "%c", &c ); /* Output data read: */ printf( "%s\", s ); printf( "%ld\", l ); printf( "%f\", fp ); printf( "%c\", c ); fclose( stream ); } } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。