2

我正在学习如何在 Visual Studio 中编写 C,这是我的代码,

#include<stdio.h>

int main() {
    char me[20]; 

    printf("What is your name?");
    scanf_s("%s", me);
    printf("darn glad to meet you, %s!\n", me);

    return(0);
}

现在,在输入所有内容后,我收到一个错误,弹出“Project14.exe 中 0xFEFEFEFE 处的未处理异常:0xC00001A5:检测到无效异常处理程序例程(参数:0x00000003)”

4

1 回答 1

3

你用scanf_s()错了。MSDN中描述的方式是scanf_s("%s", me, sizeof me);

另外你真的应该检查函数的返回值

if (scanf_s("%s", me, (unsigned)sizeof me) != 1) /* error */;

另请注意,MSDN 描述和C11 标准描述只有细微差别,除了 MSDN 未能通知您该功能对于符合标准的实现是可选的。如果您打算在 Windows 以外的环境中运行您的代码,您可能需要添加对函数是否存在的检查或使用其他方式来获取用户输入。

#ifdef __STDC_LIB_EXT1__
// use Annex K functions at will
#else
// do not use Annex K functions
#endif
于 2015-06-06T13:56:00.873 回答