这两天看到再C11标准中,对于 gets 函数说了一些危险,并推荐使用 gets_s 函数。
但在早期的编译器上还是不支持 gets_s函数的,这样可以自己实现一个 gets_s 函数。
char *gets_s(char * buffer, int num) //gets_s函数gets_s手工实现
{
if (fgets(buffer, num, stdin) != 0)
{
size_t len = strlen(buffer);
if (len > 0 && buffer[len-1] == '\n')
buffer[len-1] = '\0';
return buffer;
}
return NULL;
}