fscanf
太久没有用scanf,今天遇见一个报错,说%x匹配的是unsigned int *,我都懵了,还去查了百度,printf需要的是unsigned int,scanf需要的确实是unsigned int *,因为要对变量赋值,哈哈哈哈。
今天遇到的问题是,读取的字符串包含空格,本身已经用""括起来,但是scanf读到中间的空格就停了。
然后就是scanf的进阶玩法。
contents:
apple "green red" mary bob 3 4
fscanf(fp, "%s \"%[^\"]\" %s %s", p, q, s1, s2)
此时
p = (apple)
q = ("green red")
s1 = (mary)
s2 = (bob)
bob后面的我也不要了
fscanf(fp, "%[^\n]%*c", next)
next = (3 4)
%[^\n]的意思是除了\n全匹配,需要变量存内容
%*c把\n匹配掉了,不用存
其实contents可以修改格式,不需要起始符,只需要终止符,如
apple green red/ mary bob 3 4
posted on 2021-07-20 16:32 toughcactus 阅读(180) 评论(0) 编辑 收藏 举报