C语言fprintf()函数:将格式化数据输出到文件流
头文件:#include <stdio.h>
fprintf()用于将格式化数据输出到文件流,其原型为:
int fprintf(FILE * stream, char * format, ...);
fprintf()会根据参数format 字符串来转换并格式化数据,然后将结果输出到参数stream 指定的文件中,直到出现字符串结束('\0')为止。
关于 format 的更多内容请参考 printf() 函数。
【返回值】成功则返回写入的字符数目。
如果发生写入错误,将会设置文件错误标志(可通过 ferror() 检测),并返回一个负数。
如果在写入宽字符时一个多字节的字符发生编码错误,那么 errno 将被设置为 EILSEQ,并返回一个负数。
【实例】下面的代码将会提示用户输入姓名,然后写入到myfile.txt。
Name 1 [John ]
Name 2 [Jean-Franc]
Name 3 [Yoko ]
上面的代码中,格式化字符串被使用了两次:
fprintf()用于将格式化数据输出到文件流,其原型为:
int fprintf(FILE * stream, char * format, ...);
fprintf()会根据参数format 字符串来转换并格式化数据,然后将结果输出到参数stream 指定的文件中,直到出现字符串结束('\0')为止。
关于 format 的更多内容请参考 printf() 函数。
【返回值】成功则返回写入的字符数目。
如果发生写入错误,将会设置文件错误标志(可通过 ferror() 检测),并返回一个负数。
如果在写入宽字符时一个多字节的字符发生编码错误,那么 errno 将被设置为 EILSEQ,并返回一个负数。
【实例】下面的代码将会提示用户输入姓名,然后写入到myfile.txt。
#include <stdio.h> int main () { FILE * pFile; int n; char name [100]; pFile = fopen ("myfile.txt","w"); for (n=0 ; n<3 ; n++) { puts ("please, enter a name: "); gets (name); fprintf (pFile, "Name %d [%-10.10s]\n",n,name); } fclose (pFile); return 0; }运行程序,打开 myfile.txt 文件,包含如下的内容:
Name 1 [John ]
Name 2 [Jean-Franc]
Name 3 [Yoko ]
上面的代码中,格式化字符串被使用了两次:
- %d 有符号十进制整数
- %-10.10s 左对齐(-),最小10个字符,最多10个字符,即长度固定,始终为10