Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2011, 23:17   #1
zlo_999
Форумчанин
 
Аватар для zlo_999
 
Регистрация: 11.10.2010
Сообщений: 116
Вопрос Закрывается окно DOS

PHP код:
#include <stdio.h>

main ()
{
    
printf("hello, world!");

При нажатии на .ехе окно доса появляется с данной надписью буквально на 1 сек и исчезает!
Что за безобразие, как лечить?
windows 7 x64
компилятор microsoft visual studio
zlo_999 вне форума Ответить с цитированием
Старый 25.02.2011, 23:32   #2
Vistar
учащийся
Форумчанин
 
Аватар для Vistar
 
Регистрация: 26.04.2009
Сообщений: 144
По умолчанию

Добавь
Код:
getchar();
после printf.
Vistar вне форума Ответить с цитированием
Старый 25.02.2011, 23:47   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

если у вас stdio.h
ТО getch()
stdlib.h - system("pause");
iostream.h - cin.get();
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303

Последний раз редактировалось Hacker19_90; 25.02.2011 в 23:49.
Hacker19_90 вне форума Ответить с цитированием
Старый 26.02.2011, 00:38   #4
zlo_999
Форумчанин
 
Аватар для zlo_999
 
Регистрация: 11.10.2010
Сообщений: 116
По умолчанию

Vistar, благодарю, помогло!

Hacker19_90 благодарю, в stdio.h у меня getch() и cin.get(); - НЕ работали, а вот system("pause"); и getchar();
- сработали одинаково хорошо.

Еще, если знаете, подскажите - я когда тестировал все эти команды, мне высветилось окошко мол что предыдущая версия программы была рабочая а эта - не рабочая и запустить старую (рабочую) или эту? я нажал старую и поставил галочку "больше не показывать". и теперь мне не показывается больше это. можно ли как-то откатить чтобы показывало?
zlo_999 вне форума Ответить с цитированием
Старый 26.02.2011, 00:42   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Hacker19_90 благодарю, в stdio.h у меня getch() и cin.get(); - НЕ работали,
Прошу извенить!
getch() это из conio.h
а cin.get() это из iostream.h
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 26.02.2011, 06:36   #6
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
main ()
Так нельзя писать. Только int main()!

Цитата:
#include <stdio.h>
Если вы в С++ пишете, используйте <cstdio>, а вместо printf — std::printf.

Цитата:
stdlib.h - system("pause");
Медленное решение, которое ещё и не у каждого заработаете. Просто для cstdio getchar(), а для iostream cin.get().
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 26.02.2011, 14:45   #7
zlo_999
Форумчанин
 
Аватар для zlo_999
 
Регистрация: 11.10.2010
Сообщений: 116
По умолчанию

Obey-Kun, благодарю!
Но изучаю просто СИ (не СИ++), по учебнику Кернигана. Там даны такие уже примеры.
Файлы исходников переименовываю в с разрешением .с

А и так насчет настроек в VS 2010:

Еще, если знаете, подскажите - я когда тестировал все эти команды, мне высветилось окошко мол что предыдущая версия программы была рабочая а эта - не рабочая и запустить старую (рабочую) или эту? я нажал старую и поставил галочку "больше не показывать". и теперь мне не показывается больше это. можно ли как-то откатить чтобы показывало?

Я копался в настройках так и не нашел как вернуть.
zlo_999 вне форума Ответить с цитированием
Старый 26.02.2011, 15:34   #8
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Да, просто K&R писали по C89, сейчас на дворе C99 и там надо писать int main().

Переходи на Code::Blocks, там вообще ничего не надо делать, среда будет заставлять это окно не закрываться.

И вот ещё что, эмулятор терминала windows к DOS не имеет отношения. Просто называй это терминалом или консолью.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 26.02.2011, 16:28   #9
zlo_999
Форумчанин
 
Аватар для zlo_999
 
Регистрация: 11.10.2010
Сообщений: 116
По умолчанию

Понял, благодарю.
zlo_999 вне форума Ответить с цитированием
Старый 27.02.2011, 01:34   #10
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от zlo_999 Посмотреть сообщение
А и так насчет настроек в VS 2010:

Еще, если знаете, подскажите - я когда тестировал все эти команды, мне высветилось окошко мол что предыдущая версия программы была рабочая а эта - не рабочая и запустить старую (рабочую) или эту? я нажал старую и поставил галочку "больше не показывать". и теперь мне не показывается больше это. можно ли как-то откатить чтобы показывало?

Я копался в настройках так и не нашел как вернуть.
Отладка -> Параметры и настройки... -> Проекты и решения -> Построение и запуск -> При выполнении, когда возникают ошибки построения - выбрать "Предложить запуск".
An1ka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компиляторы не открывают DOS окно. maxq008 Помощь студентам 1 25.04.2010 18:15
Закрывается окно Никита_П Общие вопросы C/C++ 2 27.02.2010 17:22
Окно в C для MS-DOS Fixxxer Общие вопросы C/C++ 1 01.08.2009 16:34