码迷,mamicode.com
首页 > 编程语言 > 详细

C语言学习008:标准错误

时间:2016-04-06 21:27:21      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

  在上一节中的数据文件中(C语言学习007:重定向标准输入和输出),如果文件中的数据包含非法数据,如何让程序显示一条错误的提示消息呢?就需要用到标准错误

 1 #include <stdio.h>
 2  
 3  int main(){
 4      float latitude;
 5      float longitude;
 6      char info[80];
 7      int started=0;
 8      puts("data[");
 9      while(scanf("%f,%f,%79[^\n]",&latitude,&longitude,info)==3){
10          if(started){
11              printf(",\n");
12          }
13          else{
14              started=1;
15          }
16          if((latitude<-90.0)||(latitude>90.0)){
17              fprintf(stderr,"Invalid latitude:%f\n",latitude);//fprintf既可以把文件发送到标准输出(stdout),也可以发送到标准错误(stderr)
18              return 2;
19          }
20          if((longitude<-180.0)||(longitude>18.0)){
21              fprintf(stderr,"Invalid longtitude:%f\n",longitude);
22              return 2;
23          }
24          printf("{latitude:%f,longitude:%f,info:‘%s‘}",latitude,longitude,info);
25      }
26      puts("\n]");
27      return 0;
28  }

技术分享

  我们可以看到,即使用”>“运算符重定向输出到output.json文件,依然可以在屏幕上看到错误消息;创建标准错误的目的就是为了区分普通输出和错误消息

  还有更厉害的是我们可以用"2>"运算符重定向标准错误

技术分享

技术分享

C语言学习008:标准错误

标签:

原文地址:http://www.cnblogs.com/liunlls/p/C_stderr.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!