C语言学习008:标准错误

  在上一节中的数据文件中(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:标准错误)