7

我在编译 C++ 程序时收到错误消息,其中的行从“std::system(SomeString)”调用。该程序是 3 年前编译的,但今天编译时,我收到一条错误消息,指出“系统”不是“标准”的成员。是否有一些我必须导入才能使用 std::system 的内容,是否已被放弃,或者是否已将其移至另一个头文件。

4

4 回答 4

27

std::system是(并且一直是)在<cstdlib>.

C++ 标准没有定义标准头文件是否相互包含,如果包含,则包含哪些。因此,3 年前,在不同的编译器或同一编译器的不同版本上,您的代码可能会意外运行,因为您包含的头文件之一恰好包含<cstdlib>. 在您现在使用的编译器/版本上,它没有。

于 2009-09-18T22:03:38.827 回答
7

你有这个吗?:

#include <cstdlib>
于 2009-09-18T21:59:02.280 回答
2

确保您#include <cstdlib>的代码中有。

于 2009-09-18T21:59:16.243 回答
0

我试过了。它在 vs2008 中以两种方式工作——“std::system()”或“system()”。并且您想包含 stdlib.h 或 cstdlib

于 2012-04-02T01:47:51.473 回答