c primer olus 第四章的前导程序出错

img


如图所示,都是按照书上写下来的写出来的但是调试是可以出现what your name这第一段对话然后输入名字之后就出现这样的报错是什么问题呢

sacnf_s() 函数的参数是三个不是两个,scanf_s() 最后一个参数是缓冲区的大小,表示最多读取n-1个字符。比如: char d[20]; 写成 scanf_s("%s",d,20)

img

很多带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,写成scanf_s("%s",name,20);才是正确的