Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

10.04.2012, 23:30. Просмотров 1751. Ответов 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. ПОЧЕМУ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2012, 23:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование std::system() (C++):

Использование std::function в std::thread - C++
Нужно вызвать function fnc в новом потоке. Как сделать? function &lt;void(vector&lt;char&gt;)&gt; fnc; void test(vector&lt;char&gt; data) { for...

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

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

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

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

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream - C++
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

7
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
11.04.2012, 00:01 #2
Нормальная работа в чем заключается?
0
GBIT
12 / 12 / 1
Регистрация: 05.10.2011
Сообщений: 219
11.04.2012, 00:31  [ТС] #3
очевидно, что программа должна выводить ARP таблицу и обновлять ее каждые 5 сек.
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
11.04.2012, 04:15 #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.
0
GBIT
12 / 12 / 1
Регистрация: 05.10.2011
Сообщений: 219
11.04.2012, 23:44  [ТС] #5
Toshkarik,
по поводу std. Сейчас перепроверил, если честно, то я сам удивился как у меня без него компилировался код..
но тем не менее - проверил, а у меня оказывается и на 7ке тоже код не рабочий. такая же картина. Единственный вариант когда все работает - это я нажимаю ctrl+f5 и вываливается консолька, проверка админских прав, и еще одна консолька в которой все работало.

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

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

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

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

STL std::set, std::pair, std::make_pair - C++
Я не знаю как описать тему в двух словах, поэтому не обращайте внимание на название темы. Собственно перейдем к нашим баранам: есть...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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