Je reçois une erreur en compilant un programme C++ dans lequel des lignes appelle "std :: system (SomeString)". Ce programme a été compilé il y a 3 ans, mais en le compilant aujourd'hui, je reçois une erreur indiquant que 'system' n'est pas membre de 'std'. Y a-t-il quelque chose que je dois importer pour utiliser std :: system, a-t-il été abandonné ou a-t-il été déplacé vers un autre fichier d'en-tête?C++ std :: system 'system' n'est pas membre de std
7
A
Répondre
25
std::system
est (et a toujours été) dans <cstdlib>
.
Il n'est pas défini par la norme C++ si les en-têtes standard se comprennent mutuellement, et si oui lesquels. Il est donc possible qu'il y a 3 ans, sur un compilateur différent ou sur une version différente du même compilateur, votre code ait fonctionné par accident, car l'un des en-têtes que vous incluez contient <cstdlib>
. Sur le compilateur/version que vous utilisez maintenant, ce n'est pas le cas.
7
Avez-vous cette ?:
#include <cstdlib>
2
Assurez-vous que vous avez #include <cstdlib>
dans votre code.
0
J'ai essayé. Cela fonctionne dans les deux sens dans vs2008 - "std :: system()" ou "system()". Et vous voulez inclure soit stdlib.h ou cstdlib
Quelle nouvelle information vous répondez par rapport à celle acceptée? –