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