【C语法学习】11 - fprintf()函数

2023-11-04 10:04
文章标签 函数 学习 语法 fprintf

本文主要是介绍【C语法学习】11 - fprintf()函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1 函数原型
  • 2 参数
  • 3 返回值
  • 4 比较
  • 5 示例

1 函数原型

fprintf():将格式化输出发送至指定流stream,函数原型如下:

int fprintf(FILE *stream, const char *format, ...)

2 参数

fprintf()函数参数包括三部分:

  1. 参数stream是一个指向FILE类型结构的指针;stream指定了fprintf()函数要写入的流,可以是文件流,也可以是标准输出流;当是文件流时,stream等于fopen()函数的返回值;当是标准输出流时,stream等于stdout;
  2. format :格式字符串,和printf()函数一致;
  3. … :参数列表,和printf()函数一致。

3 返回值

fprintf()函数的返回值类型为int型:

  1. 写文件成功,则返回写入的总字符数;
  2. 写文件失败,则返回负值。

C语言标准描述如下:

1. fprintf returns the number of bytes written. fwprintf returns the number of wide characters written. 
2. Each of these functions returns a negative value instead when an output error occurs. 

4 比较

fprintf()函数和printf()函数的工作原理类似,差异如下:

  1. fprintf()函数将输出发送至指定流stream中;
  2. printf()函数将输出发送至标准输出流stdout中;
  3. 将fprintf()函数的参数stream指定为stdout,则fprintf()函数的功能和printf()函数的功能完全相同。

5 示例

使用fprintf()函数同时写文件和送显屏幕,示例代码如下所示:

void clear_stdin(void)
{while (getchar() != '\n');
}int main()
{FILE* fp = NULL;char filename[20] = { 0 };float data[5] = { 0 };int count = 0;printf("Enter 5 floating-point numerical values:>\n");for (count = 0; count < 5; count++){scanf("%f", &data[count]);}clear_stdin();printf("\n");printf("Enter a filename:>\n");gets(filename);if ((fp = fopen(filename, "w")) == NULL){printf("Failed to open file %s\n", filename);exit(1);}printf("\nPrint 5 floating-point numerical values:>\n");for (count = 0; count < 5; count++){fprintf(fp, "data[%d] = %f\n", count, data[count]);fprintf(stdout, "data[%d] = %f\n", count, data[count]);}fclose(fp);return 0;
}

代码运行结果如下图所示:
在这里插入图片描述

文件内容如下图所示:

在这里插入图片描述

比较总结:文件内容和标准输出内容一致,符合" 将fprintf()函数的参数stream指定为stdout,则fprintf()函数的功能和printf()函数的功能完全相同"的说法。

注意事项

  1. scanf()函数在使用完之后需要清空标准输入流stdin缓冲区,否则会导致后续使用gets()函数获取文件名时发生错误;
  2. gets()函数在使用完之后无需清空标准输入流stdin缓冲区。

这篇关于【C语法学习】11 - fprintf()函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/345021

相关文章

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

PyTorch中cdist和sum函数使用示例详解

《PyTorch中cdist和sum函数使用示例详解》torch.cdist是PyTorch中用于计算**两个张量之间的成对距离(pairwisedistance)**的函数,常用于点云处理、图神经网... 目录基本语法输出示例1. 简单的 2D 欧几里得距离2. 批量形式(3D Tensor)3. 使用不