Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
#1

Использование std::system() - C++

10.04.2012, 23:30. Просмотров 1572. Ответов 7
Метки нет (Все метки)

компилирую в студии 2010. система win7.

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <Windows.h>
 
int main()
{
    int i=0;
    while(i<1)
    {
        system("cls");
        system("arp -a");       // если эту строчку убрать то все ОК.
        Sleep(5000);
    }
}
все нормально работает. проверяю скомпилированный .exe на winXP - не работает. там просто программа в бесконечном цикле вешается.
если убрать строчку из while. то все работает на XP. ПОЧЕМУ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2012, 23:30     Использование std::system()
Посмотрите здесь:

Использование using namespace std; - C++
Я где-то слышал что использование такой диррективы на корню убивает пространство имен, но ведь только в boost и stl есть похожие классы,...

Использование std::is_nothrow_default_constructible - C++
Здравствуйте! Я использую базовый класс в качестве создателя интерфейса синглтона, и мне необходимо передать в качестве шаблонного...

Использование std::type_index - C++
Доброе утро, облазил один игровой движок, там менеджеров ресурсов заполнен std::type_index - как я понимаю для контейнеров, где лежат...

Использование std::unique_ptr - C++
Есть в коде подобная конструкция, вылетает исключение на этапе очистки памяти. С чем это может быть связано? template &lt;typename T&gt; class...

Использование std::array внутри пользовательского класса - C++
Здравствуйте! Я создал класс, одним из полей которого является массив std::array, однако компилятор ругается на константу, что задаёт...

Разобраться почему не компилируется код (использование std::bitset) - C++
У меня не компилируется этот код. Где Ошибка? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace...

error C2886: std::cout: использование символа в "using"-объявлении члена не допускается - C++
подскажите плз что ето может бить...если не подключаю файл Nokia.h тогда всьо норм.. #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
11.04.2012, 00:01     Использование std::system() #2
Нормальная работа в чем заключается?
GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
11.04.2012, 00:31  [ТС]     Использование std::system() #3
очевидно, что программа должна выводить ARP таблицу и обновлять ее каждые 5 сек.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
11.04.2012, 04:15     Использование std::system() #4
std::system находится в cstdlib. И нужно так и писать std::system( "cls" );
Попробуйте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdlib>
 
int main()
{
    int i=0;
    while(i<1)
    {
        std::system("cls");
        std::system("arp -a");       // если эту строчку убрать то все ОК.
        Sleep(5000);
    }
}
Добавлено через 1 час 8 минут
Вообще можно код сократить вот так:
C++
1
2
3
4
5
6
#include <cstdlib>
 
int main() {
    while ( true )
        std::system( "cls && arp -a && sleep 5" );
}
Добавлено через 1 час 10 минут
Единственно последний код будет не правильно работать в XP, так как там по умолчанию не установлена программа sleep.exe. Ее можно получить установив пакет Windows Server 2003 Resource Kit Tools. Если нет желания/возможности это сделать, то прекрасно будет работать код
C++
1
2
3
4
5
6
7
8
9
#include <cstdlib>
#include <windows.h>
 
int main() {
   while ( true ) {
      std::system( "cls && arp -a" );
      Sleep( 5000 );
   }
}
Проверил только что сам на XP.
GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
11.04.2012, 23:44  [ТС]     Использование std::system() #5
Toshkarik,
по поводу std. Сейчас перепроверил, если честно, то я сам удивился как у меня без него компилировался код..
но тем не менее - проверил, а у меня оказывается и на 7ке тоже код не рабочий. такая же картина. Единственный вариант когда все работает - это я нажимаю ctrl+f5 и вываливается консолька, проверка админских прав, и еще одна консолька в которой все работало.

а библиотека <cstdlib> как-то даже не понадобилась.

все перечисленные вами варианты работают одинаково. одинаково плохо. так же как у меня и было
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
11.04.2012, 23:48     Использование std::system() #6
Цитата Сообщение от GBIT Посмотреть сообщение
а библиотека <cstdlib> как-то даже не понадобилась.
Не не понадобилась, а использовалась. Windows.h за вас её подключил.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
12.04.2012, 00:02     Использование std::system() #7
GBIT, у меня почему то все прекрасно работает, что на 7, что на XP на virtualbox`e. Попробуйте exe, который я скомпилировал в GCC.
Вложения
Тип файла: 7z mytemplate.7z (82.6 Кб, 3 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2012, 17:19     Использование std::system()
Еще ссылки по теме:

Использование команды system(); Без всяких окон (без dos и т.д) - C++
Вообще реально сделать чтобы обратиться к системе в фоновом режиме. Без отрытия dos. Без всякой командной строки. Просто чтоб запускал...

Std::mutex и std::recursive_mutex - C++
Есть некий класс: class A { public bool some_method(); private: std::mutex mutex_;

Как кинуть исключение std::locale::global(std::locale(""); - C++
Добрый день. Знаю, что на С можно так: if (!setlocale(LC_ALL, &quot;&quot;)) { perror(&quot;Couldn't set locale&quot;); exit(EXIT_FAILURE); }...

std::basic_istream<_CharT, _Traits>::basic_istream() [with _CharT = char; _Traits = std::char_traits<char>]» is protected - C++
Есть класс: class Expression { public: Expression(string expr, ErrorCallback errcb=0); Expression(const Expression&amp; orig); ...

std:: - C++
Объясните пожалуйста что это за тип? иногда им описывают переменную например std::x, если можно ссылку скиньте с подробным описанием


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
14.04.2012, 17:19  [ТС]     Использование std::system() #8
Toshkarik,
спасибо, файл и правда работает ровно. неужели дело в компиляторе?
Yandex
Объявления
14.04.2012, 17:19     Использование std::system()
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru