导航

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  阅读(184)  评论(0编辑  收藏  举报