我尝试了这段代码,但它没有用。
char word1[40];
printf("Enter text: \n");
scanf_s("%s", word1);
printf("word1 = %s", word1);
执行时,显示:
word1 =
答案 0 :(得分:1)
如果仔细阅读MSDN documentation of scanf_s()
,您会发现必须提供字符串缓冲区的长度:
与scanf和wscanf不同,scanf_s和wscanf_s需要缓冲区大小 要为c,C,s,S或string类型的所有输入参数指定 包含在[]中的控件集。缓冲区大小以字符为单位 在指针指向后立即作为附加参数传递 缓冲区或变量。
按如下方式调整scanf_s()
来电:
scanf_s("%s", word1, _countof(word1));
这应该有效。
(请注意,_countof()
需要包含<stdlib.h>
。)