scanf_s写入错误怎么办?(第三个参数指定接收长度)
Posted Dontla
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scanf_s写入错误怎么办?(第三个参数指定接收长度)相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
int main() {
char i[5];
char b[100];
int result;//函数返回值
scanf_s("%s", &i);
printf("普通拳!\\n");
scanf_s("%s %s", &i, &b);
result = scanf_s("%s %s", &i, &b);//运行结果为2,因为输入了两个数,一个a,一个b
return 0;
}
如上代码,调试时报错:
解决办法:
scanf_s
要加第三个参数,指定能够读取的输入字符串长度,如果输入的字符串(包含‘\\0’
)大于这个长度,第一个字符就会变成‘\\0’
,
若输入小于或等于指定长度,结果就正常
一般第三个参数用sizeof(i)
就好了
以上是关于scanf_s写入错误怎么办?(第三个参数指定接收长度)的主要内容,如果未能解决你的问题,请参考以下文章
在VS2019中编写C语言的链表程序出现了C4473等错误,怎么修改?