sscanf(line, "%d %64[^\n", &seconds, message);
Run Code Online (Sandbox Code Playgroud)
的确%64 [^意思是-最多64个字符?它应该与GNU C编译器一起使用吗?
这意味着"最多可读取64个字符或在到达换行符时停止,以先到者为准".它由标准指定,因此所有标准库都必须支持它.
C11 7.21.6.2
[匹配一组预期字符(扫描集)中的非空字符序列.[...]转换说明符包括格式字符串中的所有后续字符,包括匹配的右括号(]).括号(扫描列表)之间的字符组成扫描集,除非左括号后面的字符是抑扬符(^),在这种情况下,扫描集包含在旋转和右括号之间的扫描列表中不出现的所有字符.
如评论中所述,]可能需要匹配来划分扫描列表.一个s不需要说明符.