【C语言】-- 格式化输入输出函数

格式化输入输出函数

1.fscanf和fprintf

fscanf: Read formatted data from stream

fprintf: Write formatted data to stream

int main()
{
	char str[80];
	float f;
	// 打开文件 打开绝对路径,注意转义字符!
	FILE* pFile = fopen("F:\\test.txt", "w+");
	// 打开是否正常
	if (!pFile)
	{
		perror("fopen:");
		return 1;
	}


	// 文件操作
	// 格式化写到文件中
	fprintf(pFile, "%f %s", 3.1416, "PI");
	// 让文件指针的位置回到文件的起始位置
	rewind(pFile);
	// 从文件中格式化读到指定程序变量中
	fscanf(pFile, "%f", &f);
	fscanf(pFile, "%s", str);
	

	// 文件关闭
	fclose(pFile);
	printf("I have read: %f and %s \n", f, str);
	pFile = NULL;

	return 0;
}

结果:

f

小结
  • 这两个函数都是顺序读写,即对文件读或写操作后,文件指针会向后移动。所以利用rewind函数将文件指针回到起始位置。
  • fscanf和fprintf的参数列表相比于scanf和printf只是多了FILE * stream参数
  • fscanf是格式化从输入流中输入数据,fprintf是格式化向输出流中输出数据。

2.sscanf和sprintf

sscanf: Read formatted data from string

sprintf: Write formatted data to string

int main()
{
	char ch1[] = "kk's 12 years old";
	char ch2[20];
	char ch3[30];
	int i;
	sscanf(ch1, "%s %d", ch2, &i);// 从字符串中读到格式化的数据
	printf("%s %d\n", ch2, i);

	sprintf(ch3, "%s %d",ch1, i);// 格式化往字符串中转,转为字符串
	printf("%s", ch3);
	return 0;
}

结果:

s

小结
  • 这两个函数都是针对字符串的。
  • sscanf和sprintf的参数列表相比于scanf和printf只是多了char * str参数
  • sscanf是从字符串中格式化输入数据,sprintf是格式化向字符串中输出数据。

3.scanf和printf

Read formatted data from stdin

Print formatted data to stdout

4.总结

scanf这种的,就是从那读(输入)到那

  • scanf是从stdin读到程序变量中
  • fscanf是从文件/stdin读到程序变量中
  • sscanf是从字符串读到程序变量中

printf这种的,就是把那写(输出)到那

  • printf是把程序变量写到stdout
  • fprintf是把程序变量写到文件/stdout
  • sprintf是把程序变量写到字符串
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值