[問題] 如何使用 fprintf 增加檔案中的欄位?

看板C_and_CPP (C/C++)作者 (羊羽)時間13年前 (2013/03/18 20:53), 編輯推噓0(008)
留言8則, 5人參與, 最新討論串1/1
不好意思 又再來發問C語言問題了 因為想今晚解決這問題 目前 我有個 d1檔案 假設d1檔案為 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 for (i=0;i<9;i++) { fscanf(fp,"%f %f %f\n",&var[0],&var[1],&var[2]); 我想輸出一個檔案為d2 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 1 1 5 5 5 2 2 6 6 6 3 3 7 7 7 1 1 8 8 8 2 2 9 9 9 3 3 fprintf(fq,"%f %f %f %f %f\n",var[0],var[1],var[2],var[1],var[2]); } 有沒有辦法 讓右邊兩列 讀到第四個時 回去一循環呢? 在下剛接觸C語言 想了一陣子 尚無好解答~ 再麻煩大家討論告知了!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.16.64

03/18 21:00, , 1F
var[0]%3+1
03/18 21:00, 1F

03/18 21:10, , 2F
樓上可以解釋一下給我聽嗎? 感恩~~~~~
03/18 21:10, 2F

03/18 21:13, , 3F
你可以先把前3個存起來
03/18 21:13, 3F

03/18 21:14, , 4F
然後用「%」運算子讓他三個三個循環
03/18 21:14, 4F
for (i=0;i<9;i++) { fscanf(fp,"%f %f %f\n",&var[0],&var[1],&var[2]); fprintf(fq,"%f %f %f ",var[0],var[1],var[2]); fprintf(fq," %f %f\n ",var[1],var[2]); } 請問 var[0]%3+1 該加在何處呢? 我還不是完全了解~ 再麻煩解說了~ ※ 編輯: freeflysky 來自: 140.116.16.64 (03/18 21:24)

03/18 21:44, , 5F
你要的東西應該是int吧
03/18 21:44, 5F

03/18 23:44, , 6F
fprintf(fq,"%f %f %f %f %f\n",var[0],var[1],var[2]
03/18 23:44, 6F

03/18 23:44, , 7F
,var[1]%3,var[2]%3);
03/18 23:44, 7F

03/19 00:36, , 8F
,(var[1]%3)?var[1]%3:3,(var[2]%3)?var[2]%3:3);
03/19 00:36, 8F
文章代碼(AID): #1HHmulEP (C_and_CPP)
文章代碼(AID): #1HHmulEP (C_and_CPP)