C fscanf在方括号之间读取

时间:2015-05-10 10:16:56

标签: c file scanf brackets square-bracket

我有一个包含数据的文件

[姓氏] [生日] [id]

当我尝试这段代码时

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

bdate获取姓氏]作为值

我怎样才能阅读方括号之间的信息。 感谢。

1 个答案:

答案 0 :(得分:2)

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

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