【发布时间】:2014-04-22 18:21:09
【问题描述】:
这是我的代码:
main()
{
char firstName[30], lastName[30];
printf("What is your name? ");
scanf_s("%s %s", firstName, lastName);
printf("Your name is %s %s\n", firstName, lastName);
}
我尝试使用 scanf,但 VS 表示已弃用并推荐使用 scanf_s。我知道您在变量之前使用 &/pointer,除非它是 string/char[] (这是本意),我真的不知道错误是什么。也许是方法参数?任何帮助表示赞赏。
【问题讨论】:
-
忽略他们反对半数标准库的运动。不过,如果需要,您可以在此处使用 scanf_s。重要的区别是任何
char*后面都跟有缓冲区的大小,包括终止符。 -
不管怎样,如果你想学习C,微软工具是一个糟糕的选择。最好尝试 GCC 或任何其他非古代 C 编译器。
-
谢谢。那么忽略弃用警告是否安全?而且我希望能够使用一个像样的 IDE(来自 IntelliJ for Java,Eclipse 对我来说似乎很可怕,VIM 怎么样?:D)。 Microsoft 工具是否包含 VS?
-
如果你想编写可移植的代码,微软的弃用警告大多是假的。
-
@Mgetz:是的,他们成功地将其纳入可选附件,尽管他们没有显示出在未来几十年实施 99 标准的动力。这使得他们的弃用警告更加烦人。
标签: c string pointers printf scanf