是否可以在不知道c中数组长度的情况下使用gets?

OKC*_*OKC -1 c string gets

如果我们想要使用get in c,我们将执行以下操作:

int main(void) {
  char str[100];
  while (gets(str)) {
  printf("%s\n",str); 
 }
}
Run Code Online (Sandbox Code Playgroud)

我们必须首先知道str的长度(即100),然后使用gets.是否可以在不知道c中数组长度的情况下使用gets?

Yu *_*Hao 5

如果你的意思是gets安全使用,不,这是不可能的.

建议:不要使用gets,因为不知道长度,它可能会导致缓冲区溢出.fgets改为使用,或gets_s在C11中使用.

事实上,自C11以来gets已被删除stdio.h.(在C99中,它已被弃用)