2012-12-05 70 views
0

最近,我開始解決在線評委的問題,例如,UVA Online Judge。我嘗試用C++解決這些問題,並使用xCode IDE編寫我的代碼。但是,當我在代碼中使用一些C函數(如printf或scanf)時,xCode不會發出抱怨,並且一切運行良好,但是,當我將代碼提交給裁判時,它正在使用GNU C++ 4.5進行編譯.3,它給出了一個編譯錯誤。問題是我必須包含cstdio頭文件。包含xCode中未顯示的錯誤

xCode並沒有對這個小錯誤給出任何警告,這有點令人討厭。有什麼辦法可以打開這些錯誤嗎?所以當我使用需要標題的函數時,它會給出警告或錯誤?

謝謝!

+0

檢查項目設置,應該是一個啓用更多警告。 –

+0

這可能會通過設置選項來檢測:'將缺失函數原型視爲錯誤' – Petesh

+0

不,不會給出任何錯誤:(感謝輸入,雖然! – Devos50

回答

0

該問題是由LLVM編譯器的一組頭文件造成的。 <iostream>包括<ios>其中包括<cstdio>,這將導致printf聲明存在。

如果您使用標誌-std=gnu++0x在Linux下的g++編譯cpp代碼,它將成功編譯。

我不認爲有,除非你安裝gcc正確的,包括GCC頭的完整副本,將觸發在MacOS X相同的錯誤的選擇,因爲頭是由<ios>頭爲LLVM

隱含

在這種情況下,您應該完成#include <cstdio>以確保該函數已被聲明,並且這也適用於gnu gcc編譯器。