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

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


/************************************************************************/
/* fscanf函数DEMO
*/
/************************************************************************/


#include <stdio.h>
#include <stdlib.h>
#define FIRST_DEMO
//#define SECOND_DEMO
#ifdef FIRST_DEMO
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);
	}
	system("pause");
	return 0;
}
#elif defined SECOND_DEMO
	FILE *stream;
	int 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');   //%c前没有空格
			/*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=%c\n",c);
			fclose(stream);
		}
		system("pause");
		return 0;
	}

#endif



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值