【发布时间】:2017-10-27 19:05:50
【问题描述】:
这是我尝试过的:
printf("Please venter first string\n");
char str[127];
scanf_s("%s", &str);
得到了这个异常:
在 strcmp.exe 中的 0x0FD2C700 (ucrtbased.dll) 处引发异常: 0xC0000005:访问冲突写入位置0x00500000。
我也试试这个:
printf("Please venter first string\n");
char str[127];
scanf_s("%d", &str);
在这种情况下也不例外,但我得到了又长又奇怪的字符串。
【问题讨论】:
-
scanf_s("%s", &str)-->scanf_s("%s", str, sizeof(str)) -
@BLUEPIXY
sofscanf_s表示“安全”...好吧,您仍然需要检查警告... -
@Jean-FrançoisFabre 什么警告?
-
@Jean-FrançoisFabre 我非常同意,这比
scanf更难做到——它已经有了长度限制功能。 -
“如何从 C 语言的输入中获取字符串”? -->
fgets(str, sizeof str, stdin);快乐的编程生活。scanf_s和scanf导致 road to perdition。