| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > ПОМОГИТЕ!!! Первая проблема многих! |
| Автор: WebXL 14.1.2005, 11:52 |
| Здравствуйте! Я только начал изучать сpp! Создал файл first.cpp с текстом ---------- #include <iostream.h> void main(void) { cout << "ПРИВЕТ!"; } ---------- Компилируется нормально, а при запуске, на долю секунды появляется окно и сразу исчезает, хотя должен вывести надпись "ПРИВЕТ!" Компилирую в borland c++ 5.5 ОС Win XPSP2. Ошибок нет, скорее всего и надпись выводится, просто окно сразу исчезает. Как сделать чтобы окно с надписью оставалось (и я мог увидеть надпись)? |
| Автор: azesmcar 14.1.2005, 11:55 | ||
|
| Автор: Найли 14.1.2005, 11:56 |
| просто добавь в код, напрмиер, while(1); после cout и все окно не исчезнет при использовании getch() окно закроется при нажатии любой клавиши, а при while(1) его надо будет закрывать в ручную |
| Автор: WebXL 14.1.2005, 12:02 | ||
| просто добавь в код, напрмиер, while(1); после cout и все окно не исчезнет ----------- Что-то не получилось :-( Добавлено @ 12:03 Код #include <iostream.h> #include <conio.h> void main(void) { cout << "ПРИВЕТ!"; getch(); } ---------------- Окно не исчезло, но текст выдался в виде непонятных символов (наверное кодировка...), А с этой проблемой можно справиться? Спасибо Вам за помощь! Добавлено @ 12:08
При использовании while(1); компилятор выдал ошибку. При использовании getch() окно осталось, но символы нечитабельные. Что-то я не в одном учебнике (где во всех, поголовно, этот код - пример первой программы) описаний таких проблем не встретил. Как с кодировкой (или что это там еще такое) быть я совсем не в курсе :-( |
| Автор: Найли 14.1.2005, 12:09 | ||
вот так всё нормально работает |
| Автор: WebXL 14.1.2005, 12:13 | ||||
Так работает!!! Но только латинскими символами. А Вы не знаете, как включить поддержку кириллицы??? |
| Автор: azesmcar 14.1.2005, 13:37 | ||||
Да да, зависшее окошко придется закрывать вручную.. Посмотри в окошке TaskManager сколько ресурсов будет жрать этот бесконечный цикл...Какой в этом смысл??? getch() вполне подходит для этой цели...
А тут уже getch() абсолютно непричем... Ты пишешь в своей оболочке кирилицей win кодировкой...а программа твоя работает в досовском окне, т.е. тут нужна досовская кодировка...если хочешь на русском ковертируй кодировку или пиши в оболочке досовской кодировкой... |
| Автор: WebXL 14.1.2005, 15:08 | ||||||
Спасибо! Разобрался, и за урок "умного" программирования спасибо - действительно неправильно, если с самого начала учиться программировать так, что простая программка будет жрать ресурсов как большая ОС :-) |
| Автор: Nicky 19.1.2005, 14:56 | ||
Это плохой стиль программирования Использование функции getch() лучший вариант в этом случае |
| Автор: Tripl-X 24.1.2005, 23:36 |
| Да,Nicky прав. тоько не забудь подключить библиотеку conio.h, я вот раз забыл, меня прееод на экзамене завалил... |
| Автор: Nastya 25.1.2005, 23:48 |
| И еще перед вызовом getch() напиши cout.flush() или cout<<endl а то часть выведенного перед этим моежт не показаться |
| Автор: Nicky 26.1.2005, 00:44 | ||
с этим никогда пока ешё не было проблем |
| Автор: Tripl-X 27.1.2005, 23:30 | ||
Nastya
Ни разу не слышал... |
| Автор: Nicky 28.1.2005, 15:26 | ||
Я тоже первый раз это вижу но всётаки опыт покажет ведь я так понял что Nasty достаточно опытна в этом
|
| Автор: Nastya 28.1.2005, 23:48 |
| Спасибо Nicky. Для чего эта фишка. постараюсь пояснить. Но вот вам вопрос Если второе это просто символ перевода коретки и перевода строки, то тгда зачем ввели второе. Дело в том, что обычно (по умолчанию) cout поток буферезированный, т.е. все что вы выводите на экран сначало попадает в буфер, а после заполения или принудительного выталкивание уже "показывается" на экране. так вот когда мысочетаем потовококвые функции с сишными функциями ввода/вывода, которой и является getch может быть ситуация, когда выведенный текст "застрянет" в буфере, если буфер заполнен частично. Для этого и нужен cout.flush() это все протолкнуть |
| Автор: En_t_end 29.1.2005, 18:49 | ||
Кстати использую эту член-функцию класса, и в файловых потоках - как вантус подходит идеально |
| Автор: lynx_916 30.1.2005, 00:29 |
| как вантуз для всех стримов, ФЛАШ рулит! |