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()向显示器写数据时,这两个函数其实并没有直接使用键盘、显示器,而是用了标准输入和标准输出。程序运行时,操作系统会创建标准的输入和输出。
"<" 操作符重定向标准输入
">" 操作符重定向标准输出
">>" 操作符重定向标准输出,如果已存在,追加到已有文件