0

最近、私はオンライン裁判官、たとえばUVAオンライン裁判官の問題を解決し始めました。私はC++でこれらの問題を解決しようとし、xCodeIDEでコードを記述します。

ただし、コードでprintfやscanfなどのC関数を使用すると、xCodeは文句を言わず、すべてが正常に実行されます。ただし、コードを裁判官に提出すると、GNU C++4.5.3でコンパイルされます。コンパイルエラーが発生します。問題は、cstdioヘッダーを含める必要があることです。

xCodeがこの小さな間違いについて警告を出さないのはちょっと面倒です。これらのエラーをオンにする方法はありますか?では、ヘッダーを必要とする関数を使用すると、警告またはエラーが発生しますか?

ありがとう!

4

1 に答える 1

0

この問題は、LLVMコンパイラの一連のヘッダー ファイルが原因で発生します。<iostream>includes <ios>which includes <cstdio>、これにより の宣言printfが存在するようになります。

-std=gnu++0xフラグを使用して cpp コードをコンパイルすると、g++Linux では正常にコンパイルされます。

<ios>ヘッダーはヘッダーによって暗黙的に含まれているため、gccヘッダーを含む適切なgccの完全なコピーをインストールしない限り、MacOS Xで同じエラーをトリガーするオプションはないと思いますLLVM

この場合、#include <cstdio>関数が宣言されていることを確認する必要があり、これは gnu gcc コンパイラでも機能します。

于 2012-12-05T12:04:18.173 に答える