C语言学习009:管道连接输入输出

  现在我们需要对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))的数据

  管道的好处是我们可以将每个小程序独立完成自己的单一任务,使程序解耦

posted @ 2016-04-06 21:57  高效养猪倌  阅读(783)  评论(0编辑  收藏  举报