先区分一下:printf,sprintf,fprintf。
1,printf就是标准输出,在屏幕上打印出一段字符串来。
2,sprintf就是把格式化的数据写入到某个字符串中。返回值字符串的长度。
3,fprintf是用于文件操作。
原型:int fprintf(FILE *stream,char *format,[argument]);
功能:fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指 定的文件。
例子:
char name[20] = "lucy";
FILE *out;
out = fopen( "output.txt", "w" );
if( out != NULL )
fprintf( out, "Hello %s\n", name );
返回值:若成功则返回输出字符数,若输出出错则返回负值。
在 test.c 中输入如下的代码
#include<stdio.h>
void main(void)
{
fprintf(stderr,"stderr!\n");
fprintf(stdout,"stdout!\n");
printf("printf!\n");
}
编译: gcc test.c -o test
执行:./test
输出:
stderr!
stdout!
printf!
若将输入重定向到一个temp.txt文件中,运行:./test>temp.txt 结果如下:
stderr!
查看temp.txt文件内容为:
stdout!
printf!
说明:
stdout -- 标准输出设备(printf("..")) 同 stdout。
stderr -- 标准错误输出设备 两者默认向屏幕输出。
但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。
strerr是作为程序运行过程中的错误显示出来的,若想将它重写向到某文件中,需要运行如下命令:
./test 2>temp.txt
这样运行结果就为:
stdout!
printf!
查看temp.txt文件的内容是:
stderr!