scanf的“%[^ \ n]”和“%s”有什么区别?

时间:2016-05-01 11:23:34

标签: c scanf

scanf的以下两次调用之间的区别是什么?我应该何时使用其中一种?

scanf(" %[^\n]", word);
scanf(" %s", word);

1 个答案:

答案 0 :(得分:3)

\n用于读取字符串,直到达到%s或EOF。空格可以包含在字符串中。

char word[100]; scanf("%99s", word); /* don't forget to reserve a space for terminating null-character */ 用于读取字符串,直到达到空格或EOF。

最好指定要读取的最大长度,以避免缓冲区溢出,如下所示:

{{1}}