最近我开始解决在线评委的问题,例如UVA Online Judge。我尝试用C ++解决这些问题,然后用xCode IDE编写代码。
但是,当我在我的代码中使用一些C函数(如printf或scanf)时,xCode不会抱怨并且一切运行正常,但是,当我将代码提交给裁判时,它正在使用GNU C ++ 4.5进行编译。 3,它给出了编译错误。问题是我必须包含cstdio标题。
xCode没有对这个小错误发出任何警告,这有点令人讨厌。有什么办法可以解决这些错误吗?因此,当我使用需要标题的函数时,它会发出警告或错误吗?
谢谢!
答案 0 :(得分:0)
问题是由LLVM
编译器的头文件集引起的。 <iostream>
包括<ios>
,其中包含<cstdio>
,这将导致printf
的声明出现。
如果使用标记-std=gnu++0x
编译cpp代码,则在Linux上的g++
下编译成功。
我不认为有一个选项会在MacOS X上触发相同的错误,除非您安装gcc的完整副本,包括gcc标头,因为<ios>
标头隐含地包含了标头LLVM
在这种情况下,您应该已经完成#include <cstdio>
以确保声明了该函数,并且这也适用于gnu gcc编译器。