gets_s 对应头文件<stdio.h>
_getws_s对应头文件<stdio.h> or <wchar.h>
原型:
char *gets_s(char *buffer,size_t sizeInCharacters);
wchar_t *_getws_s(wchar_t *buffer,size_t sizeInCharacters);
与gets函数类似。
_getws is a wide-character version of gets_s; its argument and return value are wide-character strings.
【FROM CSDN】
调用:
gets(buffer) //函数对输入长度不加以限制 //所以在vs中用gets会有警告信息This function or variable may be unsafe.
gets_s(buffer,size) //其中第二参数就是允许的输入长度 //这里的size是分配buffer-1的长度才正好,否则自动为'\0'分配空间的时候会溢出。
看下面这段代码:
#include <stdio.h>
int main(void)
{
char buffer[21]; //20 chars + '\0'
gets_s(buffer,20); //写成21后,当输入21个字符回车之后,自动添加的'\0',会要求分配存储空间的
printf("Your input was %s\n",buffer);
system("pause");
return 0;
}