如果scanf接受的字符多于缓冲区的空间,会发生什么?

  • 本文关键字:空间 缓冲区 scanf 字符 如果 c
  • 更新时间 :
  • 英文 :


如果scanf接受的字符多于缓冲区的空间,将会发生什么?例如,

char foo[2], bar[5]="abcd";
sscanf(bar, "%s", foo);

这将是一个未定义的行为,如@Mad physics在命令中提到的,但如果你想避免I,你可以使用scanf()函数的width修饰符从缓冲区读取确切的大小。

小于缓冲区大小1,为空字符留出空间。

例子:

char buff[8], str[32]="asdfasdfasasdfasdfdfasdf";
sscanf(buff, "%7s", str);

最新更新