現在我們需要對gpsdata.csv文件中的數據進行篩選,然後將符合條件的數據輸出到output.json文件中,第一種方式當然是在之前的代碼中進行修改,但是如果我們不想修改原來的代碼就能得到我們期望的結果,該如何實現呢?
42.0908,-71.2316,speed=21 37.1908,-74.2322,speed=19 42.0908,-71.3312,speed=20 44.5908,-70.2314,speed=17 39.0908,-62.2512,speed=19 43.0908,-60.1311,speed=16 45.0908,-65.2316,speed=20
我們需要用到管道,管道可以連接一個進程的標准輸出與另一個進程的標准輸入,並用"|"符號表示。
現在我們來實現條件帥選的代碼,我們將程序命名為bermuda
1 #include <stdio.h> 2 3 int main(){ 4 float latitude; 5 float longitude; 6 char info[80]; 7 while(scanf("%f,%f,%79[^\n]",&latitude,&longitude,info)==3){ 8 if((latitude>40)&&(latitude<44)){//篩選條件 9 printf("%f,%f,%s\n",latitude,longitude,info); 10 } 11 } 12 return 0; 13 }
最後,我們可以看到output.json文件中包含了符合條件((latitude>40)&&(latitude<44))的數據
管道的好處是我們可以將每個小程序獨立完成自己的單一任務,使程序解耦。