fscanf

发布时间:2011-08-16 17:40:23   来源:文档文库   
字号:

fscanf函数的一般形式

  函数名: fscanf

  功 能: 从一个流中执行格式化输入

  用 法: int fscanf(FILE *stream, char *format,[argument...]);

  int fscanf(文件指针,格式字符串,输入列表);

  返回值:整型,数值等于[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

  #include

  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\n",i);

  else

  {

  fprintf(stderr, "Error reading an \

  integer from stdin.\n");

  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

  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\n" );

  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\n", s );

  printf( "%ld\n", l );

  printf( "%f\n", fp );

  printf( "%c\n", c );

  fclose( stream );

  }

  }

本文来源:https://www.2haoxitong.net/k/doc/c4e21c21aaea998fcc220e44.html

《fscanf.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式