C语言fprintf()函数和fscanf()函数的具体使用

 更新时间:2021年11月03日 09:29:51   作者:嵌入式@hxydj  
本文主要介绍了C语言fprintf()函数和fscanf()函数的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

fprintf()函数

  在C语言中常用使用的打印函数是printf()函数,这个多用于给控制台打印数据,如果需要将内容直接打印到某个文件中的时候,可以使用fprintf()函数。它有两个参数,第一个参数为待写入的文件指针,第二个参数为待写入的内容。下面通过一个简单的例子来演示它的用法。

int main()
{
	FILE *in,*out;
	int ret;
	char ch; 

	/* 打开文件 */
	in = fopen("123.txt","a+");
	if(in == NULL)
		puts("打开失败!");
	else
		puts("打开成功!");
			
	fprintf(in," hello world");

	/* 关闭文件 */
	ret = fclose(in);
	if(ret == 0)
		puts("关闭成功!");
	else
		puts("关闭失败!");
		

	system("pause");
	return 0;
}

  首先以追加的方式打开一个文本文件123.txt,然后在使用fprintf()函数向文件里面追加字符串。最后关闭打开的文件。

在这里插入图片描述

  程序执行完成之后,打开123.txt文件,可以看到程序已经在原来的字符串后面追加了一个字符串。fprintf()函数中第一个参数的文件,不仅仅指的是文档,也可以是显示器。在C语言中键盘和显示器也可以是文件。

在这里插入图片描述

  比如在上面的例子中,可以将fprintf()的第一个参数修改为stdout,这样字符串就会打印在终端上。

在这里插入图片描述

fscanf()函数

  scanf()函数用于从键盘读取数据,fscanf()函数则用来从文件中读取数据。比如可以将上面的例子修改为,使用fscanf()函数从文件中读取数据。

int main()
{
	FILE *in,*out;
	int ret;
	char ch; 
	char str1[30],str2[30],str3[30];

	/* 打开文件 */
	in = fopen("123.txt","r");
	if(in == NULL)
		puts("打开失败!");
	else
		puts("打开成功!");
			
	fscanf(in,"%s %s %s",str1,str2,str3);
	puts(str1);
	puts(str2);
	puts(str3);

	/* 关闭文件 */
	ret = fclose(in);
	if(ret == 0)
		puts("关闭成功!");
	else
		puts("关闭失败!");
		
	system("pause");
	return 0;
}

  打开123.txt文件,然后使用fscanf()函数读取文件中的字符串,然后再将读取的字符串打印出来。这里fscanf()中有三个参数,第一个参数是要读取的文件指针,第二个参数是要读取数据的格式,第三个参数是读取的数据存放位置。由于123.txt文件中总共有3组字符串,所以第二个参数里面写了三次,同样第三个参数存储字符串的数组也写了三个。因为fscanf()函数在读取字符串的时候是以空格结束的,如果只使用一个%s的话,只能读出来第一个字符串。

在这里插入图片描述

 fscanf()函数也可以从键盘读取数据,将fscanf()函数的第一个参数改为标准输入stdin,就可以从键盘读取数据了。

在这里插入图片描述  

运行程序后,通过键盘输入三个字符串,以空格隔开,按下回车键之后,就会打印出通过fscanf()函数从标准输入设备,也就是从键盘上读取的三个字符串了

到此这篇关于C语言fprintf()函数和fscanf()函数的具体使用的文章就介绍到这了,更多相关C语言fprintf()函数和fscanf()函数 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++实现简单的学生成绩管理系统

    C++实现简单的学生成绩管理系统

    这篇文章主要为大家详细介绍了C++实现简单的学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • C++超详细讲解单链表的实现

    C++超详细讲解单链表的实现

    单链表是后面要学的双链表以及循环链表的基础,要想继续深入了解数据结构以及C++,我们就要奠定好这块基石!接下来就和我一起学习吧
    2022-03-03
  • C语言结构体的一些理解

    C语言结构体的一些理解

    这篇文章主要给大家介绍了关于C语言结构体的一些理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • C++ 关于MFC List Control 控件的总结

    C++ 关于MFC List Control 控件的总结

    这篇文章主要介绍了C++ 关于MFC List Control 控件的总结的相关资料,十分的详细,有需要的朋友可以参考下
    2015-06-06
  • 关于C++中的static关键字的总结

    关于C++中的static关键字的总结

    C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用
    2013-09-09
  • 类成员函数的重载、覆盖与隐藏之间的区别总结

    类成员函数的重载、覆盖与隐藏之间的区别总结

    以下是对类成员函数的重载、覆盖与隐藏之间的区别进行了详细的总结分析,需要的朋友可以过来参考下。希望对大家有所帮助
    2013-10-10
  • C经典算法之二分查找法

    C经典算法之二分查找法

    这篇文章主要介绍了C经典算法之二分查找法的相关资料,这里提供两种方法帮助大家实现这样的功能,需要的朋友可以参考下
    2017-10-10
  • 详细聊聊c语言中的缓冲区问题

    详细聊聊c语言中的缓冲区问题

    缓冲区又称为缓存,它是内存空间的一部分,也就是说在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区,这篇文章主要给大家介绍了关于c语言中缓冲区问题的相关资料,需要的朋友可以参考下
    2021-11-11
  • 浅析C++函数模板和类模板

    浅析C++函数模板和类模板

    C++语言的模板技术包括函数模板和类模板,模板技术是一种代码重用技术,函数和类是C++语言中两种主要的重用代码形式,这篇文章主要介绍了C++函数模板和类模板,需要的朋友可以参考下
    2022-07-07
  • MFC之ComboBox控件用法实例教程

    MFC之ComboBox控件用法实例教程

    这篇文章主要介绍了MFC之ComboBox控件用法,包括了ComboBox控件常见的各类用法,非常具有实用价值,需要的朋友可以参考下
    2014-09-09

最新评论