%[^ \ n]和%[^ \ n] s有什么区别?

时间:2019-02-18 13:29:42

标签: c string

为什么有些作者使用%[^\n]s而不是%[^\n]?哪个是正确的?

1 个答案:

答案 0 :(得分:2)

如果您要阅读一系列非换行符,则%[^\n]是正确的。

%[的{​​{1}}格式说明符将接受以下任何字符,直到遇到scanf。如果第一个给定字符为],则它在此列表中接受字符。然后将读取的字符放在给定的^参数中。

char *是上述格式说明符,其后是文字%[^\n]s 's's格式说明符的 not 部分。因此,它将读取字符,直到遇到换行符并将这些字符放入给定的%[中,然后它将尝试读取由于下一个换行符而找不到的char *字符。