[爆卦]Fscanf 2是什麼?優點缺點精華區懶人包

為什麼這篇Fscanf 2鄉民發文收入到精華區:因為在Fscanf 2這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Wyvern (かがみさま)看板C_and_CPP標題[問題] 關於fscanf讀取txt資料時...


開發平台(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
jerryh001: 換行會被跳過 01/05 19:06
所以如果我在某一行讀到剩下最後一個成員的時候
一次讀兩個值: fscanf(f, "%d %d", a, b), b會是次行第一個值 這樣嗎?
不太瞭解所謂跳過是甚麼意思 那這兩個值之間存在的間隔是space?
※ 編輯: Wyvern (220.129.193.72), 01/06/2017 11:05:05
laladeer: 如果是一行,用fget,再用strtok,會不會可行? 01/06 14:49

你可能也想看看

搜尋相關網站