无法用scanf读取任何字符

问题描述 投票:0回答:1

我编写了一个程序,读取一个整数、一个浮点数和一个字符,然后将其格式化输出。但是,它不太有效,因为如果我启动程序,我无法读取任何字符。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {

    int a;
    float b;
    char c;

    scanf("%d", &a);
    scanf("%f", &b);
    scanf("%s", &c);

    printf("%-14s: %010d\n", "Ganzzahlen", a);
    printf("%-14s: %5.5f\n", "Gleitkommazahl", b);
    printf("%-14s: %c\n", "Zeichen", c);

    return 0;
}
c scanf
1个回答
0
投票

如注释中所述,您希望为类型使用正确的格式说明符。对于单个字符,正确的说明符是

%c

但是,这将读取 any 字符,因此使用

" %c" with a leading space so that 
scanf` 会忽略字符之前的前导空格。

© www.soinside.com 2019 - 2024. All rights reserved.