C语言fscanf函数了解

 fscanf函数从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。

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

返回值:返回实际被转换并赋值的输入项的数目。

  %d:读入一个十进制整数。

  %i :读入十进制,八进制,十六进制整数,与%d类似,但是在编译时通过数据前置来区分进制,如加入“0x”则是十六进制,加入“0”则为八进制。例如串“031”使用%d时会被算作31,但是使用%i时会算作25。


scanf(...)函数与fscanf(stdin,...)相同。

sscanf(s,...)函数与scanf(...)等价,所不同的是,前者的输入字符来源于字符串s.

------------------------------------------

下面是百科中的两个DEMO

------------------------------------------


[cpp]  view plain copy
  1. /************************************************************************/  
  2. /* fscanf函数DEMO 
  3. */  
  4. /************************************************************************/  
  5.   
  6.   
  7. #include <stdio.h>  
  8. #include <stdlib.h>  
  9. #define FIRST_DEMO  
  10. //#define SECOND_DEMO  
  11. #ifdef FIRST_DEMO  
  12. int main(void)  
  13. {  
  14.     int i;  
  15.     printf("Input an integer:");  
  16.     /*read an integer from the standard input stream*/  
  17.     if (fscanf(stdin,"%d",&i))  
  18.     {  
  19.         printf("The integer read was :%d\n",i);  
  20.     }   
  21.     else  
  22.     {  
  23.         fprintf(stderr,"Error reading an integer from stdin.\n");  
  24.         exit(1);  
  25.     }  
  26.     system("pause");  
  27.     return 0;  
  28. }  
  29. #elif defined SECOND_DEMO  
  30.     FILE *stream;  
  31.     int main(void)  
  32.     {  
  33.         long l;  
  34.         float fp;  
  35.         char s[81];  
  36.         char c;  
  37.         stream=fopen("fscanf.out","w+");  
  38.         if (stream == NULL)  
  39.         {  
  40.             printf("The file fscanf.out was not opened.\n");  
  41.         }   
  42.         else  
  43.         {  
  44.             fprintf(stream,"%s %ld %f%c","a-string",65000,3.14159,'x');   //%c前没有空格  
  45.             /*set pointer to beginning of file*/  
  46.             fseek(stream,0L,SEEK_SET);  
  47.             /*Read data back from file*/  
  48.             fscanf(stream,"%s",s);  
  49.             fscanf(stream,"%ld",&l);  
  50.             fscanf(stream,"%f",&fp);  
  51.             fscanf(stream,"%c",&c);  
  52.             /*output data read*/  
  53.             printf("%s\n",s);  
  54.             printf("%ld\n",l);  
  55.             printf("%f\n",fp);  
  56.             printf("c=%c\n",c);  
  57.             fclose(stream);  
  58.         }  
  59.         system("pause");  
  60.         return 0;  
  61.     }  
  62.   
  63. #endif  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
fscanf函数C语言标准库中的一个输入函数,用于从文件中按照指定格式读取数据。它的原型定义在<stdio.h>头文件中,函数的详细说明可以在C语言标准文档中找到。 fscanf函数的基本用法是按照指定的格式从文件中读取数据,并将读取的数据存储到对应的变量中。它的语法如下: int fscanf(FILE* stream, const char* format, ...); 其中,stream是指向文件的指针,format是格式字符串,用于指定读取数据的格式,...表示可以接受多个参数,用于接收读取的数据。fscanf函数返回成功读取的数据项数量,如果读取失败或到达文件结尾,则返回EOF。 下面是一个示例代码,演示了fscanf函数的使用: ```c #include <stdio.h> int main() { FILE* file = fopen("data.txt", "r"); if (file == NULL) { printf("Failed to open file\n"); return 1; } int num1, num2; float num3; char str[100]; int count = fscanf(file, "%d %d %f %s", &num1, &num2, &num3, str); printf("Read %d items\n", count); printf("num1: %d\n", num1); printf("num2: %d\n", num2); printf("num3: %f\n", num3); printf("str: %s\n", str); fclose(file); return 0; } ``` 以上示例代码打开一个名为"data.txt"的文件,从文件中读取两个整数、一个浮点数和一个字符串,并将读取的数据打印输出。请注意,fscanf函数的格式字符串中的格式必须与文件中的数据格式相匹配,否则可能会导致读取错误。 希望能解答你的问题,如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值