C语言学习007:重定向标准输入和输出

  先来完成一个将输入数据转换成json格式输出的小任务

 1 #include <stdio.h>
 2 
 3 int main(){
 4     float latitude;
 5     float longtitude;
 6     char info[80];
 7     int started=0;
 8     puts("data[");
 9     while(scanf("%f,%f,%79[^\n]",&latitude,&longtitude,info)==3){
10         if(started){
11             printf(",\n");
12         }
13         else{
14             started=1;
15         }
16         printf("{latitude:%f,longtitude:%f,info:'%s'}",latitude,longtitude,info);
17     }
18     puts("\n]");
19     return 0;
20 }

  有意思的是,我们可以直接将一个配置好的经纬度文件通过程序直接生成json文件,这是gpsdata.csv文件里的数据

42.123123,-71.321321,speed=21
41.123123,-71.421321,speed=11
43.123123,-71.621321,speed=18
44.123123,-71.321321,speed=17
45.123123,-71.321321,speed=21
42.523123,-70.321321,speed=20

  通过程序直接运行,在程序同目录中生成了output.json文件

  为什么会这样呢?

  在用scanf()从键盘读取数据、printf()向显示器写数据时,这两个函数其实并没有直接使用键盘、显示器,而是用了标准输入和标准输出。程序运行时,操作系统会创建标准的输入和输出。

  "<" 操作符重定向标准输入

  ">" 操作符重定向标准输出

  ">>" 操作符重定向标准输出,如果已存在,追加到已有文件

 

posted @ 2016-04-04 22:38  高效养猪倌  阅读(1233)  评论(1编辑  收藏  举报