Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Без debug программа работает, а с прерывается


Автор: XSonicX 28.9.2008, 17:54
Код

// ex.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;

double x0 (double a, double b, double c) //функция высчитывает х0
{
    cout << " a=" << a << " , b=" << b << " , b=" << c << "\n";
    
    return (-b/(2*a));
}
int main()
{
    double a, b, c, xo ;
    cout << "Enter a,b,c numbers: ";
    cin >> a;
    cin >> b;
    cin >> c;
    xo=x0(a,b,c);
    //cout << "new result is " << -b/(2*a) << "\n"; // на всякий случай
    cout << "x0 = " << xo << "\n" ;
    cout << "\nCreated by XSonicX\n\n";
    return 0;
}






когда в MVS 2008 нажимаю "start without debugging" программ работает, а когда " start debugging" то автоматом вырубается перед функцией

Помогите пожалуйста, спасибо зарание

Автор: J0ker 28.9.2008, 18:20
она после функции вырубается - в debug консоль закрывается после завершения программы

Автор: XSonicX 28.9.2008, 18:28
J0ker, спасибо, но не очень понял... как исправить?  smile 

Автор: J0ker 28.9.2008, 18:36
ну запиши последней командой cin.ignore(); например...

Автор: XSonicX 28.9.2008, 18:40
Код

// ex.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;

double x0 (double a, double b, double c) //функция высчитывает х0
{
    cout << " a=" << a << " , b=" << b << " , b=" << c << "\n";
    
    return (-b/(2*a));
}
int main()
{
    double a, b, c, xo ;
    cout << "Enter a,b,c numbers: ";
    cin >> a;
    cin >> b;
    cin >> c;
    xo=x0(a,b,c);
    //cout << "new result is " << -b/(2*a) << "\n"; // на всякий случай
    cout << "x0 = " << xo << "\n" ;
    cout << "\nCreated by XSonicX\n\n";
    cin.ignore();
        return 0;
   
} 






не помогло :(

Автор: J0ker 28.9.2008, 18:56
Код

    cin.clear();
    cin.ignore(INT_MAX, '\n');
    cin.ignore();

Автор: XSonicX 28.9.2008, 19:02
J0ker, спасибо большое все работает   smile 

я новичок и хотел бы узнать почему программа не работала корректно без этих функций?

Автор: J0ker 28.9.2008, 19:12
она корректно работала
просто когда ты запускаешь ее из VS не в дебаг она запускается в консоле специальным скриптом, в котором после вызова твоей программы стоит пауза
если ты запускаешь программу в дебаг, то она запускает голую консоль, которая закрывается ПОСЛЕ завершения твоей программы. Т.е. твоя программа отработала правильно и вывела все результаты - просто ты их не успел увидеть т.к. консоль сразу-же закрылась. 

Автор: XSonicX 28.9.2008, 19:17
J0ker, спасибо большое  smile 
нашел более легкую для запоминания альтернативную команду 
Код

system("PAUSE");
 

Автор: J0ker 28.9.2008, 19:42
Цитата(XSonicX @ 28.9.2008,  19:17)
J0ker, спасибо большое  smile 
нашел более легкую для запоминания альтернативную команду 
Код

system("PAUSE");

это windows specific, оно не портируемо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)