作者Wyvern (かがみさま)
看板C_and_CPP
标题[问题] 关於fscanf读取txt资料
时间Thu Jan 5 18:06:12 2017
开发平台(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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1483610775.A.08F.html
1F:推 jerryh001: 换行会被跳过 01/05 19:06
所以如果我在某一行读到剩下最後一个成员的时候
一次读两个值: fscanf(f, "%d %d", a, b), b会是次行第一个值 这样吗?
不太了解所谓跳过是甚麽意思 那这两个值之间存在的间隔是space?
※ 编辑: Wyvern (220.129.193.72), 01/06/2017 11:05:05
2F:→ laladeer: 如果是一行,用fget,再用strtok,会不会可行? 01/06 14:49