C语言、为什么只执行一个scanf_s函数

头疼

scanf_s不是这样用的,你要写成下面这种(后面的40是指最多要输入多少个字符)

scanf_s("%s", fname,40);
scanf_s("%s", lname,40);
fflush(stdin);

另外scanf_s遇到空格也会以为是新的输入,所以如果你的某项内容中如果有空格,要写成类似这种

scanf_s("%[^\n]", fname,40);
fflush(stdin);
scanf_s("%[^\n]", lname,40);
fflush(stdin);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-21
或许是清楚键盘缓存区的原因,你试试在两个scanf_s()函数中间插入一行代码:
fflush(stdin);
满意请采纳,不满意欢迎追问~
相似回答