作者DKer ()
看板C_and_CPP
標題[問題] fscanf 和 fprintf 的問題
時間Tue Sep 1 20:30:05 2009
最近試著用C語言在整理一些數據
遇到兩個小問題小弟想不出答案,來請教各位~"~
我的原始資料大概是長這個樣子
466880200501011026.91028.2 ......
46688020050102 999.91030.0 ......
......
不同顏色代表不同的資料欄位
我用C寫出這樣子的東西(還在測試)
希望可以擷取我想要的欄位
{ FILE *fptr1,*fptr2
char num[6],date[8],a[6],b[6] ...
......
fscanf(fptr1,"%6s%8s%6s",&num,&date,&a);
fprintf(fptr2,"%s %s %s",num,date,a);
......
return 0;
}
這樣子print出來的結果是: 20050101 1026.9
num消失了
如果我把fscanf格式改成這樣
fscanf(fptr1,"%6s,%8s,%6s",&num,&date,&a);
那num可以print出來,但是後面的資料都會變成亂碼~"~
想請教一下這是什麼問題
scanf的正確格式應該是我寫的第一種吧@@?
第二個問題是 如第三欄位
fscanf似乎沒有辦法讀取空白
在遇到第二列那種狀況的時候我的寫法就會記錄到999.91
同時讓後面的資料全都亂掉
請問這樣的問題有什麼方法可以解決嗎~?
爬文爬到用gets好像可以讀取到空白,但是看起來他好像只能一次性的讀取資料
不能做到我想要的分欄位?
小弟是個C的新手,請大家給我一些方向 m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.63.202
※ 編輯: DKer 來自: 140.112.63.202 (09/01 20:44)
1F:→ james732:你的字串長度好像不夠?放6個字元的話,空間要給7個 09/01 20:44
2F:→ DKer:我有試過,num[7]還是一樣orz 09/01 20:48
3F:推 varg:沒補\0 09/01 21:26
4F:推 VictorTom:先把整行讀進來放進一個大的char []裡去, 再自己一個數 09/01 23:00
5F:→ VictorTom:parsing也可以吧XD 09/01 23:01
6F:→ Knighter:資料的格式要一樣喔 09/02 17:32