📜  printf,sprintf和fprintf有什么区别?(1)

📅  最后修改于: 2023-12-03 14:45:39.910000             🧑  作者: Mango

printf()sprintf()fprintf()的区别

在C语言中,printf()sprintf()fprintf()都是输出函数,但是它们的输出对象不同。

printf()

printf()是标准输出函数,其输出结果在终端中显示。printf()的函数原型和用法如下:

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

其中,第一个参数是格式化字符串,用于控制输出的格式;后续可变参数根据格式化字符串来输出。

例如:

printf("The value of pi is approximately: %f\n", 3.1415926535);

输出结果为:

The value of pi is approximately: 3.141593
sprintf()

sprintf()是把格式化的数据输出到目标字符串中,不输出到终端。其函数原型和用法如下:

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

其中,第一个参数是目标字符串,用于存储输出结果;第二个参数是格式化字符串,用于控制输出的格式;后续可变参数根据格式化字符串来输出。

例如:

char buffer[100];
sprintf(buffer, "The value of pi is approximately: %f", 3.1415926535);
printf("%s\n", buffer);

输出结果为:

The value of pi is approximately: 3.141593
fprintf()

fprintf()是把格式化的数据输出到文件中,不输出到终端。其函数原型和用法如下:

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

其中,第一个参数是FILE类型的指针,用于指定输出的文件流;第二个参数是格式化字符串,用于控制输出的格式;后续可变参数根据格式化字符串来输出。

例如:

FILE *fp;
fp = fopen("output.txt", "w");
fprintf(fp, "The value of pi is approximately: %f", 3.1415926535);
fclose(fp);

输出结果会写入到输出文件output.txt中。

总结

printf()sprintf()fprintf()都是输出函数,但是用途不同:printf()输出到终端,sprintf()输出到字符串,fprintf()输出到文件。它们的函数原型相似,但是第一个参数的类型不同。在使用时需要根据输出对象来选择使用哪种函数。