C ++ std :: system'system'不是std的成员

时间:2009-09-18 21:55:33

标签: c++ header namespaces include std

我收到编译C ++程序的错误,其中哪些行从“std :: system(SomeString)”调用。这个程序是在3年前编译的,但是在今天编译时,我收到一个错误,指出'system'不是'std'的成员。有什么东西我必须导入才能使用std :: system,它已被放弃,还是已移动到另一个头文件。

4 个答案:

答案 0 :(得分:25)

std::system<cstdlib>中已经(并且一直都是)。

C ++标准没有定义标准头是否相互包含,以及是否包含哪些标头。所以有可能在3年前,在不同的编译器或同一编译器的不同版本上,您的代码偶然起作用,因为您包含的其中一个标题恰好包含<cstdlib>。在您现在使用的编译器/版本上,它没有。

答案 1 :(得分:7)

你有吗?:

#include <cstdlib>

答案 2 :(得分:2)

确保代码中有#include <cstdlib>

答案 3 :(得分:0)

我试过了。 它在vs2008中工作两种方式 - &#34; std :: system()&#34;或&#34; system()&#34;。 并且您想要包含stdlib.h或cstdlib