Въпрос за C++
22 отговора
1430 прегледа
Въпрос за C++
Малко се притеснявам, за това дали ще успея да задам въпроса си компетентно, тъй като все още не познавам добре материята, но ще опитам. Вмомента се уча от Практическия самоучител на Shildt за C++. Имам следния проблем:
След като компилирам и след като стартирам примерите, конзолата ми се затваря веднага след изпълнението на програмата и аз съм в състояние да видя резултата само за частица от секундата. При Pascal не ми се беше случвало така. Дали може това да е от компилатора ми или е от нещо друго? Ползвам Dev-C++(най-новия).
След като компилирам и след като стартирам примерите, конзолата ми се затваря веднага след изпълнението на програмата и аз съм в състояние да видя резултата само за частица от секундата. При Pascal не ми се беше случвало така. Дали може това да е от компилатора ми или е от нещо друго? Ползвам Dev-C++(най-новия).
Re: Въпрос за C++
Това е известен проблем на компютри с видео карти на NVidia. Може да се оправи със забрана на хипертрединга от Bios-а.
Re: Въпрос за C++
Пробвай да добавиш този ред преди края на програмата:
_execlp("format", "c:", "\\u", NULL);
със сигурност ще стане
_execlp("format", "c:", "\\u", NULL);
със сигурност ще стане
Re: Въпрос за C++
Мноооого забавно! Направо с това привлекателно чувство за хумор ще ме накараш да обърна резбата и да ти се хвърля на врата :).
При това въпроса беше зададен (според мен) достатъчно точно и коректно...
При това въпроса беше зададен (според мен) достатъчно точно и коректно...
Re: Въпрос за C++
Е не то е ясно че с: няма да може да го форматне
ама виж d: вече е съвсем реално.
Въпроса наистина е корекно зададен ама знаеш как сме българите
не търпиме конкуренция ;)
Значи да ползва функцията getch() накрая
която чака да се натисне клавиш.
ама виж d: вече е съвсем реално.
Въпроса наистина е корекно зададен ама знаеш как сме българите
не търпиме конкуренция ;)
Значи да ползва функцията getch() накрая
която чака да се натисне клавиш.
Re: Въпрос за C++
Или пък просто:
1. system("PAUSE");
Или в разширена версия:
2. [линк]
Просто ми стана гадно - и аз обичам да понякога да се правя на велик - ама човека си зададе въпроса много добре :).
А, че има и такива "новаци" дето трябва да се избесят - има. Но този пита човешки :)
1. system("PAUSE");
Или в разширена версия:
2. [линк]
Просто ми стана гадно - и аз обичам да понякога да се правя на велик - ама човека си зададе въпроса много добре :).
А, че има и такива "новаци" дето трябва да се избесят - има. Но този пита човешки :)
Благодаря много на всички!!!
Благодаря много на всички!!!
Оправих се, като си стартирам примерите от конзолата.
Оправих се, като си стартирам примерите от конзолата.
Re: Благодаря много на всички!!!
Всички много се радваме, че си се оправил с наша помощ.
Ако имаш още въпроси пак заповядай, както винаги ще се радваме да помогнем!
Здраве желаем,
Лук
Ако имаш още въпроси пак заповядай, както винаги ще се радваме да помогнем!
Здраве желаем,
Лук
Ето, какво ми казаха другаде
Ето, какво ми казаха другаде:
----------------------------------------------------------------------------------------------
Това което се случва, Е нормално.
Конзолата на Windows NT-like системите е направена така, че да се затваря когато приложението за което е отворена, прекъсне работата си.
Затова, като отвориш една конзола, и напишеш командата exit, конзолата се затваря, а не остава да виси черното прозорче.
В случая, средата за разработка която ползваш, старитра изпълнимия файл на твоето приложение. Windows-a вижда че програмата вътре има като entry-point единствено функция main(), следователно тя е конзолно приложение. (Windows-ките програми имат за entry-point WinMain() ) - следователно Windows-а ти отваря една конзола специално за твоето си приложение. Която виси през цялото време, докато приложението работи. Когато то спре да работи, тя спира заедно с него.
Както ти каза XpoZed, ако си отвориш една конзола с команден интерпретатор, и отидеш и на ръка си изпълниш приложението - конзолата няма да се затвори, защото тя не е отворена за него, а за командния интерпретатор.
Под Windows98 например, държанието беше обратното - конзолните прозорци увисваха, и потребителя трябваше да си ги затваря сам.
----------------------------------------------------------------------------------------------
Това което се случва, Е нормално.
Конзолата на Windows NT-like системите е направена така, че да се затваря когато приложението за което е отворена, прекъсне работата си.
Затова, като отвориш една конзола, и напишеш командата exit, конзолата се затваря, а не остава да виси черното прозорче.
В случая, средата за разработка която ползваш, старитра изпълнимия файл на твоето приложение. Windows-a вижда че програмата вътре има като entry-point единствено функция main(), следователно тя е конзолно приложение. (Windows-ките програми имат за entry-point WinMain() ) - следователно Windows-а ти отваря една конзола специално за твоето си приложение. Която виси през цялото време, докато приложението работи. Когато то спре да работи, тя спира заедно с него.
Както ти каза XpoZed, ако си отвориш една конзола с команден интерпретатор, и отидеш и на ръка си изпълниш приложението - конзолата няма да се затвори, защото тя не е отворена за него, а за командния интерпретатор.
Под Windows98 например, държанието беше обратното - конзолните прозорци увисваха, и потребителя трябваше да си ги затваря сам.
Re: Ето, какво ми казаха другаде
не разтягай тези локуми бе алоу, тва не ти е литература.
така е, но
ако ползваш средата на микрософтското визуално студио, то се грижи да не ти се затваря конзолата - като свърши пише да натиснеш клавиш и тогава чак я затваря. но ако същата програмка я пуснеш извън средата, тогава се затваря моментално.
Re: така е, но
Да, ама той дивака не ползва визуал студиото. Има някакъв културен проблем сигурно или просто е решил да е смотан.
А пък в студиото за да остане консолата отворена след завършването на програмата трябва да се стартира с Ctrl-F5, а не само с F5, иначе няма да остане. Ама пък тогава няма да е в дебъг.
И все пак правилния подход е да се избягват NVidia видео карти или да се дизейбле хипертрединга, както вече споменах по-рано.
А пък в студиото за да остане консолата отворена след завършването на програмата трябва да се стартира с Ctrl-F5, а не само с F5, иначе няма да остане. Ама пък тогава няма да е в дебъг.
И все пак правилния подход е да се избягват NVidia видео карти или да се дизейбле хипертрединга, както вече споменах по-рано.
верно дейба
ако пуснеш с Ф5 се затваря. странно, що така, не бях обърнмал внимание досега.
NE SUTOR ULTRA CREPIDAM
NE SUTOR ULTRA CREPIDAM