文章出處

  在上一節中的數據文件中(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>"運算符重定向標準錯誤


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()