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