fprintf中使用stderr

fprintf(stderr, "%s:%d", __FILE__, __LINE__,)
这里的stderr是会打印到屏幕还是生成一个文件(文件名是什么)呢?谢谢!


回答:会打印到屏幕上。

因为:(见 MSDN)

fprintf 函数的功能是: Print formatted data to a stream

格式化输出数据到流,这个流并没有特指是文件流。

关于 stdin、stdout、stderr 的说明如下:

By default, standard input is read from the keyboard, while standard output and standard error are printed to the screen

默认情况下,标准输入从键盘读取,同时标准输出和标准错误会打印到屏幕。

在控制台测试 :

void main( void )
{
fprintf(stderr, "%s:%d", __FILE__, __LINE__);
system("pause");
}

会在屏幕显示当前文件的路径和fprintf语句所在的行数。 ^_^\
 


首先在 test.c 中输入如下的代码
[html]  view plain  copy
  1. void main()  
  2.   
  3. {  
  4.   
  5.     fprintf(stderr,"stderr!");  
  6.   
  7.     fprintf(stdout,"stdout!");  
  8.   
  9.     printf("printf!");  
  10.   
  11. }  

启动cmd,进入到当前目录下(目录从c:到d:方法:cd :d)

上面程序编译成.exe文件,使用命令:cl test.c

直接执行.exe输出stderrstdout!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!


  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值