【发布时间】:2016-09-26 23:18:35
【问题描述】:
#include <stdio.h>
#include <string.h>
char name[24];
int main(void)
{
printf("Type the name of a cartoon character.");
printf(">>> ");
scanf_s("%s", name);
printf("\n\nCharacter name: %s", name);
return 0;
}
我无法将其打印出来。我不确定哪里出了问题,因为编译器没有给我任何错误。然而, 运行程序时出现中断错误。任何帮助,将不胜感激。谢谢。
【问题讨论】:
-
阅读
scanf_s的手册页会有所帮助...始终阅读您使用的函数的文档!并启用所有推荐的警告!中途的现代编译器应该发出警告。 -
我使用 scanf_s 是因为 Visual Studio 不会让我像 scanf 那样运行程序。有没有办法解决这个问题?
-
是的:正确使用!其余的:请参阅我的第一条评论。
-
"有没有办法解决这个问题?"
scanf_s上的文档给出了正确用法的示例。 msdn.microsoft.com/en-us/library/w40768et.aspx -
好吧,让我有点遗憾:
scanf_s想要缓冲区的大小作为第三个参数,所以scanf_s("%23s", name,(unsigned)_countof(name) )应该这样做。如手册页中所述,顺便说一句。