繁体   English   中英

读取浮点数时scanf不起作用

[英]scanf not working when reading float

我有以下代码:

#include <stdio.h>

float a;            //Initialize variables
char b;
int c;
char d;

int main(void)
{
    printf("Enter float: ");
    scanf("%4.2f", &a);

    printf("%4.2f", a);

    //printf("Enter character:\n");

    //printf("Enter 4-digit integer: \n");

    //printf("Enter character:\n");

    return 0;
}

但是编译时出现以下错误:

1.) scanf :unknown field type character '.' 在格式说明符中

2.) scanf : 为格式字符串传递的 arguments 太多

谁能解释我的代码中的问题是什么?

谢谢!

scanf("%f",&a)不使用格式说明符。

如注释中所述,Visual Studio将此警告视为错误。 所以要么使用

scanf_s("%f",&a);

或进入设置并禁用此警告,如本文所述: 为什么C4996上的Visual Studio 2013错误?

您不应该格式化输入。 因此,只需将%f用作scanf的第一个参数

scanf("%f", &a);

使用 %lf 扫描双精度输入

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM