【问题标题】:Why does error occurs in Linux, not occuring in Visual Studio为什么Linux中会出现错误,而Visual Studio中不会出现
【发布时间】:2019-03-15 09:17:42
【问题描述】:
我使用适用于 Linux(WSL)、Ubuntu 的 Windows 子系统。我尝试编译简单的代码。
我在 WSL 中遇到错误。
但是,它在 Visual Studio 中运行良好。
【问题讨论】:
-
不要使用已弃用的gets,也不要使用非标准的gets_s,而是使用fgets:fgets(str, sizeof(str), stdin);。仔细阅读fgets的文档。请回答您的下一个问题:不要发布文字图片,而是将文字作为文字发布。阅读help center 中的页面,并学习如何正确格式化问题,为此投入的时间很少。
标签:
c
ubuntu
windows-subsystem-for-linux
【解决方案1】:
gets_s() 是 Microsoft C 运行时库中定义的gets() 的“安全”替代方案。它不包含在 Linux 中使用的 GNU C 库中。
为了便于移植,请在 stdin 输入流上使用 fgets()。