我在编译一个C++程序时遇到了错误,其中一行调用了"std::system(SomeString)"。这个程序在3年前编译成功,但今天编译时出现错误,指出'system'不是'std'的成员。我需要导入什么才能使用std::system,它已经被废弃了吗,还是已经移动到另一个头文件中。
我在编译一个C++程序时遇到了错误,其中一行调用了"std::system(SomeString)"。这个程序在3年前编译成功,但今天编译时出现错误,指出'system'不是'std'的成员。我需要导入什么才能使用std::system,它已经被废弃了吗,还是已经移动到另一个头文件中。
std::system
是位于 <cstdlib>
中的函数(从一开始就是如此)。
根据 C++ 标准,标准头文件是否相互包含以及如果包含的话应包含哪些头文件并未定义。因此,三年前在不同的编译器或同一编译器的不同版本上,您的代码可能出于偶然性能够正常工作,因为您包含的其中一个头文件刚好包含了 <cstdlib>
。但在您现在使用的编译器/版本上,它不会包含。
你有这个吗?:
#include <cstdlib>
确保您的代码中包含#include <cstdlib>
。
我已经尝试过了。 在vs2008中,"std::system()"或者"system()"都可以工作。 你需要包含stdlib.h或者cstdlib。