[问题] C 无法输入字串

楼主: ccam (C.C.C)   2018-04-11 14:45:57
开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Visual Studio 2017
问题(Question):
自己看书看到阵列的章节
有一个范例是输入字串的,照着写之后,除错时没问题
可以印出 "Enter a string: "
但是输入任何字都出现错误
错误结果(Wrong Output):
0x0F75C6BC (ucrtbased.dll) 中 (于 Project1.exe) 掷回例外状况: 0xC0000005:
写入位置 0x01100000 时发生存取违规。
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
#include <stdio.h>
int main()
{
char str[20], string2[] = "string literal";
printf("Enter a string: ");
scanf_s("%s", str);
printf("string1 is: %s\nstring2 is: %s\n", str, string2);
return 0;
}
补充说明(Supplement):
求解惑,感谢。
作者: tjjh89017 (伊达政宗)   2018-04-11 14:48:00
scanf_s如果是%c %C %s %S,需要再多给一个长度限制的参数
作者: nicknick0630 (NICK)   2018-04-11 15:07:00
scanf_s("%s",str,20);或是把安全检查关掉就可以直接用scanf("%s",str);
作者: tony02258 (Tony)   2018-04-12 13:44:00
#define _CRT_SECURE_NO_WARNINGS

Links booklink

Contact Us: admin [ a t ] ucptt.com