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))的数据
管道的好处是我们可以将每个小程序独立完成自己的单一任务,使程序解耦。