0

最近我开始解决在线法官的问题,例如 UVA 在线法官。我尝试使用 C++ 解决这些问题,并使用 xCode IDE 编写代码。

但是,当我在我的代码中使用一些 C 函数(例如 printf 或 scanf)时,xCode 不会抱怨并且一切运行正常,但是,当我将我的代码提交给法官时,它正在使用 GNU C++ 4.5.3 和它给出编译错误。问题是我必须包含 cstdio 标头。

xCode 没有对这个小错误发出任何警告,这有点烦人。有什么办法可以打开这些错误吗?因此,当我使用需要标头的函数时,它会给出警告还是错误?

谢谢!

4

1 回答 1

0

问题是由LLVM编译器的一组头文件引起的。<iostream>包括<ios>which includes <cstdio>,这将导致printf存在的声明。

如果您使用 flag 编译 cpp 代码-std=gnu++0x,则g++在 Linux 下编译成功。

我不认为有一个选项会在 MacOS X 上触发相同的错误,除非您正确安装 gcc 的完整副本,包括 gcc 标头,因为标头隐含在<ios>标头中LLVM

在这种情况下,您应该#include <cstdio>确保已声明该函数,这也适用于 gnu gcc 编译器。

于 2012-12-05T12:04:18.173 回答