[問題] fscanf 和 fprintf 的問題(字串擷取)

看板C_and_CPP作者時間14年前 (2009/09/01 20:30), 編輯推噓2(204)
留言6則, 5人參與, 最新討論串1/2 (看更多)
最近試著用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)

09/01 20:44, , 1F
你的字串長度好像不夠?放6個字元的話,空間要給7個
09/01 20:44, 1F

09/01 20:48, , 2F
我有試過,num[7]還是一樣orz
09/01 20:48, 2F

09/01 21:26, , 3F
沒補\0
09/01 21:26, 3F

09/01 23:00, , 4F
先把整行讀進來放進一個大的char []裡去, 再自己一個數
09/01 23:00, 4F

09/01 23:01, , 5F
parsing也可以吧XD
09/01 23:01, 5F

09/02 17:32, , 6F
資料的格式要一樣喔
09/02 17:32, 6F
文章代碼(AID): #1AdHFE_J (C_and_CPP)
文章代碼(AID): #1AdHFE_J (C_and_CPP)