添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
开心的滑板  ·  LLDB 断点管理 - 掘金·  1 年前    · 
喝醉的羽毛球  ·  C# ...·  1 年前    · 
微醺的豌豆  ·  后端 - golang i/o ...·  1 年前    · 

「这是我参与11月更文挑战的第17天,活动详情查看: 2021最后一次更文挑战 」。

fprintf()函数

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

int main()
	FILE *in,*out;
	int ret;
	char ch; 
	/* 打开文件 */
	in = fopen("123.txt","a+");
	if(in == NULL)
		puts("打开失败!");
		puts("打开成功!");
	fprintf(in," hello world");
	/* 关闭文件 */
	ret = fclose(in);
	if(ret == 0)
		puts("关闭成功!");
		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("打开失败!");
		puts("打开成功!");
	fscanf(in,"%s %s %s",str1,str2,str3);
	puts(str1);
	puts(str2);
	puts(str3);
	/* 关闭文件 */
	ret = fclose(in);
	if(ret == 0)
		puts("关闭成功!");
		puts("关闭失败!");
	system("pause");
	return 0;

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

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

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

分类:
后端
标签: