C语言编程 scanf 大小不匹配,但需要使用"32bit operan"来调用scanf表示发生缓冲区不足或溢出,如何解决C6328 报错警告
img
scanf与printf用法相似,但是有差别的。
scanf格式化字串中尽量不能有多余的跳格符换行符等等不相关字符!
具体可自行查阅具体的用法……
对于C6328错误提示,提示内容为输入大小不匹配且需要使用32位操作符调用scanf表示缓冲区不足或溢出,可以尝试以下解决方案:
确认scanf输入控制符和变量类型是否匹配,例如%c表示字符类型,%d表示整数类型,%f表示浮点类型等等,如果不匹配可能会导致输入大小不匹配的问题。
在所有scanf的输入控制符%c前面加一个空格,例如scanf(" %c", &a),这样做可以忽略掉之前输入中剩余的空格和换行符,从而避免出现输入大小不匹配的情况。
加入一个getchar()函数调用,例如在循环体中使用scanf读取字符变量时,可以在第二次调用scanf前加上一个getchar(),将输入中多余的换行符或空格吞掉,避免对下一次输入造成影响,例如:
while (scanf("%c %c", &a, &b) != EOF)
{
getchar();
printf("%c %c\n", a, b);
}
供参考: