簡體   English   中英

Visual Studio 2013中scanf_s和printf中的C計算器錯誤

[英]C Calculator Error in scanf_s and printf with Visual Studio 2013

我試圖制作的計算器應用程序在運行時無法正常運行。 它帶有一個奇怪的消息框(見下文)。

錯誤

#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上的scanf_s

(注意: scanf_s是對C.11附件K.3.5.3.4中描述的標准C庫的可選擴展。)


馬特指出"%f"是不正確的格式說明&Pre ,由於Preint ,和"%f"指示參數將是一個指向float 使用"%d"表示參數是指向int的指針。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM