使用scanf_s,报错“使用了未初始化的局部变量”

使用scanf_s,报错“使用了未初始化的局部变量”

问题描述:

c primer plus一书程序清单3.5程序

//显示字符的代码编号
#include <stdio.h>
int main(void)
{
    char ch;
    printf("请输入一个字符\n");
    scanf_s("%c,&ch");
        printf("%c的代码编号是%d\n", ch, ch);
    return 0;
}

1>WindowsProject1.cpp
1>c:\users\zhou\source\repos\windowsproject1\windowsproject1\windowsproject1.cpp(8): warning C4473: “scanf_s”: 没有为格式字符串传递足够的参数
1>c:\users\zhou\source\repos\windowsproject1\windowsproject1\windowsproject1.cpp(8): note: 占位符和其参数预计 2 可变参数,但提供的却是 0 参数
1>c:\users\zhou\source\repos\windowsproject1\windowsproject1\windowsproject1.cpp(8): note: 缺失的可变参数 1 为格式字符串“%c”所需
1>c:\users\zhou\source\repos\windowsproject1\windowsproject1\windowsproject1.cpp(8): note: 此参数由转换说明符使用
1>c:\users\zhou\source\repos\windowsproject1\windowsproject1\windowsproject1.cpp(6): error C4700: 使用了未初始化的局部变量“ch”
1>已完成生成项目“WindowsProject1.vcxproj”的操作 - 失败。

scanf_s("%c",&ch);

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