Курилка Легкий вопрос по с++

Тема в разделе "Курилка", создана пользователем CSCO12103692, 5 июн 2013.

  1. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Доброго времени суток!!
    Подскажите пожалуйста если кто в курсе.

    Пытаюсь тут запустить одну махонькую программку на плюсах.

    Исходники старые, но нашел в интернете требуемые заголовки, выставил правильные namespace'ы, все ошибки победил. Но!!

    Когда запускаю её в студии, выскакивает консольное окошко на доли секунды и тут-же сворачивается.


    Что добавить в программу, чтобы она ждала, скажем, нажатия любой клавиши пользователя? Ну или как-то по другому запретить автоматическое сворачивание.
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    Попробуйте в конце поставить

    Sleep( 1000 ) или delay (1000)
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    выведите сообщение пользователю что-то типа cout << "Для продолжения нажмите ...."; cin >> ТутВашаПеремнная; давно на С++ ничего не вояла...
  4. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Спасибо, sleep до какой-то степени разрядил обстановку :)

    Эм.. ок, попробую разобраться. Мерси.
  5. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    getchar() (или getch() не помню) в конце программы.
  6. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Неа, продолжает закрываеться атоматом ^^
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    У меня нет с++ под рукой.
    А так:

    while((c=getchar())!='\n');
    ?
    (должно реагировать только на enter.

    З.Ы. может там возврат из программы не в самом конце, а где-то посередине скажем return есть?

    З.З.Ы. Можете запустить ее из консоли (cmd) результат должен быть виден.
  8. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    2ТС - если код не секретный и не сильно обЪемный, то может выложите на обзор?
  9. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Хочется вместе пофаниться? ^^

    Код не секретный, и совсем простой ( 1й урок из старенького учебника ).

    Код:
    #include <objbase.h>
    #include <iostream>
    using namespace std;
    void trace(const char* pMsg) { cout << pMsg << endl; }
    class IX
    {
    public:
    virtual void Fx1 () = 0;
    virtual void Fx2 () = 0;
    };
    class IY
    {
    public:
    virtual void Fy1() = 0;
    virtual void Fy2() = 0;
    };
    class CA : public IX, public IY
    {
    public:
    virtual void Fx1() { cout << "Fx1" << endl; }
    virtual void Fx2() { cout << "Fx2" << endl; }
    virtual void Fy1() { cout << "Fy1" << endl; }
    virtual void Fy2() { cout << "Fy2" << endl; }
    };
    int main()
    {
    trace("Client: creating component instance");
    CA* pA = new CA;
    // Получить указатель IX
    IX* pIX = pA;
    
    Sleep(3000);
    trace("Client: using interface IX");
    pIX->Fx1();
    pIX->Fx2();
    // Получить указатель IY
    IY* pIY = pA;
    
    Sleep(3000);
    trace("Client: using interface IY");
    pIY->Fy1();
    pIY->Fy2();
    
    Sleep(3000);
    trace("Client: deleting instance");
    delete pA;
    return 0;
    }
    sleep(3000) - это естественно уже мое.

    Скопировал прямо из Visual Studio 2012, компилируется без ошибок.

    Эм "с" - это же какая-то переменная, а в плюсах вроде их нужно явно объявлять...
    Сек почитаю несколько уроков с++ для чайников, про азы вроде переменных, попробую и отпишусь :)
  10. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Я соврал

    getchar() - прекрасно пашет, и это видимо простейший способ ожидать ввод от пользователя.

    Более навороченное, с проверкой символа, было бы как то так:

    Код:
    cout << "Press e to exit";
    char ch;
    do {
    cin >> ch;
    } while( ch != 'e' );
    зы
    Вообще народ здешний плюсами интересуется?
    Если будет что непонятно, имеет смысл еще и здесь спрашивать? (да да, я знаю, что форум 1С, но все-же..)

Поделиться этой страницей