这篇文章给大家分享的是有关C语言中printf,sprintf和fprintf的区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
成都创新互联是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十年时间我们累计服务了上千家以及全国政企客户,如被动防护网等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞赏。printf,sprintf和fprintf都是C语言的输出语句,都是把格式好的字符串输出。那么这三者有什么区别,下面本篇文章就来认识一下printf,sprintf和fprintf,介绍它们之间的区别,希望对大家有所帮助。
printf
printf函数用于在标准输出设备(stdout控制台)上输出文本(字符串/字符流)或值。
基本语法
int printf(const char * format,...);
说明:
format提供了文本字符串的格式,该格式将在输出设备上使用%s,%d,%f等格式说明符进行输出。
...提供需要输出的参数列表。
返回类型int返回屏幕上输出的字符总数。
示例:
#include<stdio.h> int main() { printf("hello geeksquiz"); printf("\n"); int a=2; printf("%d",a); return 0; }
输出:
sprintf
sprintf用于将格式化文本(字符串/字符流)发送(复制)到字符串缓冲区上。
基本语法
int sprintf(char * str,const char * format,...);
说明:
● char * str : 将在其中发送(复制)格式化文本的字符数组。
● format在格式说明符的帮助下提供格式化文本。
● ...提供需要输出的参数列表。
● 返回类型int将复制(发送)字符的总数返回到char * str中。
示例:
#include <stdio.h> int main() { char str[100]; int n; n=sprintf((char*)str,"我的名字是%s, I am %d years old.","Mike",23); printf("Text is: %s\n",str); printf("Total number of copied characters are: %d\n",n); return 0; }
说明:sprintf将字符串存储在指定的char缓冲区上,再通过printf在stdout控制台上输出。
输出:
fprintf
fprintf用于在文件中输出字符串内容,但不在stdout控制台上输出。
基本语法:
int fprintf(FILE * fptr,const char * str,...);
说明:
fptr :这是指向 FILE 对象的指针,该 FILE 对象标识了流。
str:这是 C 字符串,包含了要被写入到流 stream 中的文本。
示例:
#include<stdio.h> int main() { int i, n=2; char str[50]; //open file sample.txt in write mode FILE *fptr = fopen("sample.txt", "w"); if (fptr == NULL) { printf("无法打开文件"); return 0; } for (i=0; i<n; i++) { puts("输入名称"); gets(str); fprintf(fptr,"%d.%s\n", i, str); } fclose(fptr); return 0; }
输出:
sample.txt中:
总结:
printf,sprintf和fprintf的区别是:它们的输出目标不一样。printf在stdout控制台上输出数据字符流;sprintf将数据字符流发送指定的char缓冲区上;fprintf用于在文件中输出字符串内容。
感谢各位的阅读!关于C语言中printf,sprintf和fprintf的区别有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
网站标题:C语言中printf,sprintf和fprintf的区别有哪些-创新互联
网站路径:https://www.cdcxhl.com/article26/eghcg.html
成都网站建设公司_创新互联,为您提供动态网站、定制开发、云服务器、企业网站制作、面包屑导航、商城网站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联