gpt4 book ai didi

Visual Studio 2013 的 scanf_s 和 printf 中的 C 计算器错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:44:30 27 4
gpt4 key购买 nike

我尝试制作的计算器应用程序在运行时无法正常工作。它出现了一个奇怪的消息框(见下文)。

error

#include <stdio.h>

int main()
{
int Pre;
float v1;
float v2;
char op;

printf("Enter precision: ");
scanf_s("%f", &Pre);

if (Pre < 0)
{
printf("Error: negative precision\n");
return 0;
}

printf("Enter expression: ");
scanf_s("%f %c %f", &v1, &op, &v2);

if (op == '+')
{
printf("%f %c %f\n", v1, op, v2);
return 0;
}


return 0;
}

有什么想法吗?

最佳答案

当使用scanf_s 将数据读入char *wchar_t * 时,您必须指定接收数据的缓冲区大小输入。

scanf_s("%f %c %f", &v1, &op, 1, &v2);

来源:MSDN on scanf_s .

(注意:scanf_s 是 C.11 附件 K.3.5.3.4 中描述的标准 C 库的可选扩展。)


Matt指出 "%f"&Pre 的错误格式说明符,因为 Preint,并且"%f" 表示参数将是指向 float 的指针。使用 "%d" 表示参数是指向 int 的指针。

关于Visual Studio 2013 的 scanf_s 和 printf 中的 C 计算器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25859555/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com