2009-09-18 3 views
7

Я получаю сообщение об ошибке, компилирую программу на C++, в которой из строк выполняется вызов из «std :: system (SomeString)». Эта программа была составлена ​​3 года назад, но при ее компиляции сегодня я получаю сообщение об ошибке, в котором говорится, что «система» не является членом «std». Есть ли что-то, что я должен импортировать для использования std :: system, был ли он оставлен или переместился в другой заголовочный файл.C++ std :: system 'system' не является членом std

ответ

25

std::system есть (и всегда был) в <cstdlib>.

Не определено стандартом C++, включают ли стандартные заголовки друг друга, и если да, то какие. Таким образом, возможно, что 3 года назад, на другом компиляторе или другой версии того же самого компилятора, ваш код работал случайно, потому что один из заголовков, которые вы включили именно так, включал <cstdlib>. В компиляторе/версии, которую вы используете сейчас, это не так.

2

Убедитесь, что вы #include <cstdlib> в вашем коде.

0

Я пробовал. Работает в двух направлениях в vs2008 - «std :: system()» или «system()». И вы хотите включить либо stdlib.h, либо cstdlib

+1

Какую новую информацию вы дадите в сравнении с принятой? –

 Смежные вопросы

  • Нет связанных вопросов^_^