Char类型没有输入

时间:2016-12-24 23:55:16

标签: c visual-studio-2013

出于某种原因,我无法从我在visual studio 2013中使用的scanf_s写入ch char类型。我试过间隔"%c"两种方式" %C"并尝试了scanf和scanf_s。我迷路了。

// Alphabetic Pyramid Program - The Egyptians must have used C!
#include <stdio.h>

int main(void)
{
    char ch;

    printf("Enter the letter that will be the foundations of your Aphabetic Pyramid:\n");  // User is promted to enter a letter
    scanf_s(" %c", &ch);   // User inputs Foundational_letter
    printf("The code for %c is %d!\n", ch, ch);

    getchar();
    getchar();

    return 0;
}

1 个答案:

答案 0 :(得分:4)

scanf_s需要%c说明符的两个参数:接收地址和大小,即1:

scanf_s(" %c", &ch, 1);

按照设计,所有安全版本的scanf(以_s结尾的那些)都需要一些参数来指定当它是类型字符串(%s)和char(%c)时为接收输入保留多少缓冲区空间)。即对于%s,您将指定缓冲区地址及其保留大小。

如果您不应用这些规则,请预期未定义的行为。