scanf_s读取字符数组输入超过数组长度什么也不读取?

char str[3];
scanf_s("%s", str,sizeof(str));
printf_s("str(1)=%c\n", str[1]);
printf_s(str=%s", str);
如果输入ab,则能正常输出,如果输入abc则数组没有读入ab,输入为str[1]=? str=
输入的个数超过数组数-1时,就什么也不读入了

如果用%s作为格式指示符来读取一个过长的字符串,那么会导致内存溢出。如图所示,虽然可以输出整个字符串,但是因为在用%s输出这个字符串时数组下标越
温馨提示:答案为网友推荐,仅供参考
相似回答