区别
都是把格式好的字符串输出,但是输出的目标不一样
printf
格式:int pintf(const char * format,…)
把格式字符串输出到标准输出(一般是屏幕)
#include <stdio.h>
int main() {
printf("hello world\n");
return 0;
}
sprintf
格式:int sprintf(chat* str, const char * format,…)
把格式字符串输出到指定字符串中,即str。比prinf多一个char*目标地址
#include <stdio.h>
#include <stdarg.h>
#include <iostream>
using namespace std;
int main() {
printf("hello world\n");
char msg[128];
sprintf(msg, "%s%s", "abc","efg");
cout << "msg = " << msg << endl;;
return 0;
}
输出为:
hello world
msg = abcefg
fprintf
格式:int fprintf(FILE *stream,const char *format,…)
把字符串输出到指定的目标文件中,比printf多一个文件指针。
#include <stdio.h>
#include <stdarg.h>
#include <iostream>
using namespace std;
int main() {
printf("hello world\n");
char msg[128];
sprintf(msg, "%s%s", "abc","efg");
cout << "msg = " << msg << endl;;
fprintf(stdout, "%s%s\n", "hij", "klm");
return 0;
}
输出为:
hello world
msg = abcefg
hijklm