[問題] 關於fscanf讀取txt資料

看板C_and_CPP (C/C++)作者 (かがみさま)時間9年前 (2017/01/05 18:06), 9年前編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) Win7 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) GCC 餵入的資料(Input): 1 3 10 20 30 2 2 100 102 3 0 4 4 101 19 106 106 5 0 每行第一個值為index, 第二個值為此index的成員數量num 後面就是各成員的value 程式碼(Code):(請善用置底文網頁, 記得排版) while(fscanf(f, "%d\t%d", &idx, &num) != EOF) //先抓index跟成員數量 { for(i=0; i<num; ++i) //幾個成員就抓幾個值 { if(fscanf(f, "\t%d", &val) != EOF ); printf("...."); //印出來 } } 我的問題是 從第一行起 我先抓了兩個值 確認index和成員個數後 逐個抓取成員的value印出來 我fscanf裡面沒有抓取'\n' fscanf的行為是如何讓他從第一行跳到第二行的呢? 不好意思新手問題 看半天沒能看懂 所以上來板上求救orz 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.98.154.254 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1483610775.A.08F.html

01/05 19:06, , 1F
換行會被跳過
01/05 19:06, 1F
所以如果我在某一行讀到剩下最後一個成員的時候 一次讀兩個值: fscanf(f, "%d %d", a, b), b會是次行第一個值 這樣嗎? 不太瞭解所謂跳過是甚麼意思 那這兩個值之間存在的間隔是space? ※ 編輯: Wyvern (220.129.193.72), 01/06/2017 11:05:05

01/06 14:49, , 2F
如果是一行,用fget,再用strtok,會不會可行?
01/06 14:49, 2F
文章代碼(AID): #1ORXgN2F (C_and_CPP)
文章代碼(AID): #1ORXgN2F (C_and_CPP)