温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C语言中printf,sprintf和fprintf的区别有哪些

发布时间:2020-09-09 11:22:20 来源:亿速云 阅读:286 作者:小新 栏目:编程语言

这篇文章给大家分享的是有关C语言中printf,sprintf和fprintf的区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

printf,sprintf和fprintf都是C语言的输出语句,都是把格式好的字符串输出。那么这三者有什么区别,下面本篇文章就来认识一下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; 
}

输出:

C语言中printf,sprintf和fprintf的区别有哪些

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控制台上输出。

输出:

C语言中printf,sprintf和fprintf的区别有哪些

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; 
}

输出:

C语言中printf,sprintf和fprintf的区别有哪些

sample.txt中:

C语言中printf,sprintf和fprintf的区别有哪些

总结:

printf,sprintf和fprintf的区别是:它们的输出目标不一样。printf在stdout控制台上输出数据字符流;sprintf将数据字符流发送指定的char缓冲区上;fprintf用于在文件中输出字符串内容。

感谢各位的阅读!关于C语言中printf,sprintf和fprintf的区别有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI