1. 主页
  2. 文档
  3. C语言教程
  4. C语言输入输出
  5. printf、sprintf 和 fprintf 有什么区别?

printf、sprintf 和 fprintf 有什么区别?

printf:
printf 函数用于在标准输出控制台上打印数据的字符流。

语法 :

 int printf(const char* str, ...); 

例子 :

// simple print on stdout 
#include<stdio.h>
int main()
{
printf("hello 52cxydh");
return 0;
}

输出 :

 hello 52cxydh

sprintf:
语法:

int sprintf(char *str, const char *string,...); 

字符串打印功能,而不是在控制台上打印,将其存储在 sprintf 中指定的字符缓冲区中

例子 :

// Example program to demonstrate sprintf()
#include<stdio.h>
int main()
{
char buffer[50];
int a = 10, b = 20, c;
c = a + b;
sprintf(buffer, "Sum of %d and %d is %d", a, b, c);

// The string "sum of 10 and 20 is 30" is stored 
// into buffer instead of printing on stdout
printf("%s", buffer);

return 0;
}

输出 :

Sum of 10 and 20 is 30

fprintf:
fprintf 用于打印文件中的字符串内容,但不在标准输出控制台上。

int fprintf(FILE *fptr, const char *str, ...);

例子 :

#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("Could not open file");
return 0;
}

for (i=0; i<n; i++)
{
puts("Enter a name");
gets(str);
fprintf(fptr,"%d.%s\n", i, str);
}
fclose(fptr);

return 0;
}
Input: 52cxydh
       52cxydh.com
Output :  sample.txt file now having output as 
0. 52cxydh
1. 52cxydh.com

 

 

这篇文章对您有用吗?