gpt4 book ai didi

c - 程序末尾的 scanf_s() 有什么用?

转载 作者:太空宇宙 更新时间:2023-11-04 05:34:55 25 4
gpt4 key购买 nike

在大学学习编程的头几个月后,我一直在文件末尾或代码中的某些重要位置包含 scanf_s("%d");,在命令控制台在程序加载后不消失。

我似乎找不到关于以下方面的简明答案或解释:

  1. 如果我不写 scanf_s("%d");,为什么我的控制台会消失
  2. 我使用的是 Visual Studio 2015,并且注意到早期版本不要求在代码末尾写入此内容。这是为什么?
  3. 这被认为是不好的做法吗?

最佳答案

Windows 会在控制台程序完成执行时自动关闭它们。 scanf_s,以及 scanf,getchar(尽管注意可能还有一些未处理的输入,通常会消耗此调用)或 system("pause")(注意 - Windows 特定,不推荐)防止这种情况发生,强制窗口保持打开状态以等待输入。

Visual Studio 可能已阻止控制台以其他方式关闭或在早期版本中使用了某些内部控制台,因此无需此解决方法。例如,CLion 使用自己的控制台,不会遇到此问题。此外,如果您从 cmd 手动启动程序,则不需要任何东西来阻止控制台关闭 - 它只会在程序执行完毕后返回到较早的状态。

关于c - 程序末尾的 scanf_s() 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41860574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com