c - scanf的 "%[^\n]"和 "%s"有什么区别?

标签 c scanf

以下两次 scanf 调用有什么区别我什么时候应该使用其中之一?

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

最佳答案

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

%s 用于读取字符串,直到遇到空格或 EOF。

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

char word[100];
scanf("%99s", word); /* don't forget to reserve a space for terminating null-character */

关于c - scanf的 "%[^\n]"和 "%s"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36966085/

相关文章:

c - 使用 fscanf 检查是否存在更多行

c - 为什么这个程序会无限循环?

c++ - C/C++ 中的静态作用域

使用 cygwin 在 Windows 上编译 libjpeg?

c - while 循环中的 scanf 仅适用于第一次迭代

c - 在 C 中使用 %[...] 使用 fscanf 解析字符串

C - 从带线程的文件中读取

c - 如何声明具有 volatile 元素的静态数组?

c - 如何用scanf()读取一句char指针?

c++ - 具有十六进制值的 Sscanf