先來完成一個將輸入數據轉換成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()向顯示器寫數據時,這兩個函數其實並沒有直接使用鍵盤、顯示器,而是用了標准輸入和標准輸出。程序運行時,操作系統會創建標准的輸入和輸出。
"<" 操作符重定向標准輸入
">" 操作符重定向標准輸出