为什么有些作者使用%[^\n]s
而不是%[^\n]
?哪个是正确的?
答案 0 :(得分:2)
如果您要阅读一系列非换行符,则%[^\n]
是正确的。
%[
的{{1}}格式说明符将接受以下任何字符,直到遇到scanf
。如果第一个给定字符为]
,则它在此列表中接受不字符。然后将读取的字符放在给定的^
参数中。
char *
是上述格式说明符,其后是文字%[^\n]s
。 's'
是s
格式说明符的 not 部分。因此,它将读取字符,直到遇到换行符并将这些字符放入给定的%[
中,然后它将尝试读取由于下一个换行符而找不到的char *
字符。>