C fscanf 读取方括号之间

C fscanf to read between square brackets

我有一个包含数据的文件

[名字姓氏][生日][id]

当我尝试这段代码时

while(fscanf(file,"%s %s %s",name,bdate,uid) == 3)

bdate 获取姓氏] 作为值

如何读取方括号之间的信息。 谢谢。

你最好使用 fgets() 和一个真正的解析器,但尝试使用 scanf "scanset" 进行快速修复

fscanf(file, " [%[^][]] [%[^][]] [%[^][]]", name, bdate, uid)
//            ^        ^        ^           ordinary whitespace
//             ^      ^ ^      ^ ^      ^   ordinary characters
//              ^^---^   ^^---^   ^^---^    scanset specification
//                ^                         "reverse" scanlist
//                 ^^                       characters in scanlist