扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
因为fprintf和printf类似,输出的内容取决于字符串和参数,但fprintf的操作对象是文件而不是标准输出设备。
创新互联是专业的船营网站建设公司,船营接单;提供成都网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行船营网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
格式化输出就是根据“格式化字符串”的内容决定“具体输出”的内容,比如
printf("%s, hello!", "XXX");
"%s, hello!"就是格式化字符串,有点像模板,只是告诉函数一个轮廓,具体的细节由后面的参数("XXX")决定。所以具体输出是“XXX, hello!”,这个你应该知道吧?
用法示例:将数据输入到文件1.txt中并打开1.txt文件。
#include stdio.h
#include stdlib.h
FILE* stream;
int main()
{
int i = 10;
double fp = 1.5;
char s[] = "this is a string";
char c = '\n';
stream = fopen("1.txt", "w");
fprintf(stream, "%s%c", s, c);
fprintf(stream, "%d\n", i);
fprintf(stream, "%f\n", fp);
fclose(stream);
system("1.txt");
return 0;
}
扩展资料:
功能
fprintf()函数根据指定的格式(format),向输出流(stream)写入数据(argument)。
函数说明
fprintf( )会根据参数format 字符串来转换并格式化数据,然后将结果输出到参数stream 指定的文件中,直到出现字符串结束('\0')为止。
用法详解
C 库函数int fprintf(FILE *stream, char *format[, argument,...]);
format 标签属性是:%[flags][width][.precision][length]specifier
参考资料来源:百度百科-fprintf
sprintf、fprintf和printf这三个函数区别为:输出不同、参数不同、重定向不同。
一、输出不同
1、sprintf函数:sprintf函数是把格式字符串输出到指定文件设备中。
2、fprintf函数:fprintf函数是把格式字符串输出到指定字符串中。
3、printf函数:printf函数是把格式字符串输出到标准输出中。
二、参数不同
1、sprintf函数:sprintf函数参数比printf多一个char*。
2、fprintf函数:fprintf函数参数比printf多一个文件指针FILE*。
3、printf函数:printf函数参数为字符串string。
三、重定向不同
1、sprintf函数:sprintf函数不可以重定向。
2、fprintf函数:fprintf函数不可以重定向。
3、printf函数:printf函数可以重定向。
C语言文件 fprintf函数与printf函数的作用相仿,都是格式化读写函数。所不同的是,fprintf函数的读写对象是磁盘文件,即是文件输出命令。而printf函数的读写对象是终端。
具体说来,fprintf函数的功能是:把args的值以format指定的格式输出到fp所制定的文件中。
它的原型是:
int fprintf(fp,format, args,…)
FILE *fp;
char *format;
返回值类型:整型,为实际输出的字符数
他的调用方式是:fprintf(文件指针,格式字符串,输出表列);
格式字符包括:%d, %c,%f等,与printf的格式字符相同。
需要说明的是,此函数必须先将文件打开,并指明写入方式后才能使用。这个函数使用方便、易于理解,但是写入时要将ASCII码转换为二进制,花费时间较多,因此在内存与磁盘频繁交换数据时,最好不用fprintf函数,而用fwrite函数。用完该函数后,还要关闭打开的文件。
fwrite是向流中写入数据,而fprintf是向流中写入格式数据。两者的共同点为向流中写入数据,至于区别可以看看两者的申明:
size_tfwrite(
constvoid*buffer,
size_tsize,
size_tcount,
file*stream
);
intfprintf(
file*stream,
constchar*format[,
argument]...
);
前者fwrite写入流stream中的数据是buffer指定的内容,内容的字节大小分别由size和count两个参数来指定,因此写入流stream中的内容有可能是乱码,但是有效的数据。
后者fprintf写入流stream中的数据则由argument来指定,并且这些argument的内容分别由format指定的格式来显示,因此写入stream的内容通常来说是文本字符流,当然,也允许写入格式乱码。
两者都可以将文本写入流stream中。比如:
fwrite("helloworld!",1,12,fp);
与
fprintf(fp,"%s","helloworld!");
等价。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流