【发布时间】:2014-06-16 05:10:51
【问题描述】:
我一直在尝试自己寻找答案,但我找不到。
我想插入编程的一部分,它读取像“Hello”这样的字符串并存储并可以在需要时显示它,以便printf("%s", blah); 产生Hello。
这是给我带来麻烦的代码部分
char name[64];
scanf_s("%s", name);
printf("Your name is %s", name);
我知道printf 不是问题;在提示后输入某些内容后程序崩溃。请帮忙?
【问题讨论】:
-
scanf的“安全”版本要求您提供缓冲区的长度。 -
只需使用
scanf(),而不是这个scanf_s()。或者,更好的是fgets()。 -
你有相同的堆栈跟踪吗?如果是,请发布。
-
如果使用
scanf,您必须指定长度以避免缓冲区溢出:scanf("%63s", name); -
这对我有用:stackoverflow.com/a/17067317/830514,我使用的是 VS 2013,C 程序。
标签: c string scanf c11 tr24731