Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ПОМОГИТЕ!!! Первая проблема многих! При запуске окно сразу исчезает! 
:(
    Опции темы
WebXL
Дата 14.1.2005, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.1.2005

Репутация: нет
Всего: нет



Здравствуйте!
Я только начал изучать сpp!
Создал файл first.cpp
с текстом
----------
#include <iostream.h>

void main(void)

{
cout << "ПРИВЕТ!";
}

----------
Компилируется нормально, а при запуске, на долю секунды появляется окно и сразу исчезает, хотя должен вывести надпись "ПРИВЕТ!"

Компилирую в borland c++ 5.5 ОС Win XPSP2.
Ошибок нет, скорее всего и надпись выводится, просто окно сразу исчезает.
Как сделать чтобы окно с надписью оставалось (и я мог увидеть надпись)?

PM MAIL   Вверх
azesmcar
Дата 14.1.2005, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Код

#include <iostream.h>
#include <conio.h>

void main(void)
{
   cout << "ПРИВЕТ!";
   getch();
}

PM   Вверх
Найли
Дата 14.1.2005, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 9.1.2005
Где: Россия, Новосибир ск

Репутация: нет
Всего: нет



просто добавь в код, напрмиер, while(1); после cout
и все окно не исчезнет
при использовании getch() окно закроется при нажатии любой клавиши, а при while(1) его надо будет закрывать в ручную



Это сообщение отредактировал(а) Найли - 14.1.2005, 11:58
PM MAIL ICQ   Вверх
WebXL
Дата 14.1.2005, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.1.2005

Репутация: нет
Всего: нет



просто добавь в код, напрмиер, while(1); после cout
и все окно не исчезнет
-----------

Что-то не получилось :-(
Добавлено @ 12:03
Код

#include <iostream.h>
#include <conio.h>

void main(void)
{
cout << "ПРИВЕТ!";
getch();
}
----------------
Окно не исчезло, но текст выдался в виде непонятных символов (наверное кодировка...),
А с этой проблемой можно справиться?

Спасибо Вам за помощь!
Добавлено @ 12:08
Цитата
просто добавь в код, напрмиер, while(1); после cout
и все окно не исчезнет
при использовании getch() окно закроется при нажатии любой клавиши, а при while(1) его надо будет закрывать в ручную

При использовании while(1); компилятор выдал ошибку.
При использовании getch() окно осталось, но символы нечитабельные.
Что-то я не в одном учебнике (где во всех, поголовно, этот код - пример первой программы) описаний таких проблем не встретил.
Как с кодировкой (или что это там еще такое) быть я совсем не в курсе :-(

PM MAIL   Вверх
Найли
Дата 14.1.2005, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 9.1.2005
Где: Россия, Новосибир ск

Репутация: нет
Всего: нет



Код

#include<iostream>
#include<stdio.h>

using namespace std;

void main()
{
cout<<"Hello!";
while(1);
}



вот так всё нормально работает
PM MAIL ICQ   Вверх
WebXL
Дата 14.1.2005, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.1.2005

Репутация: нет
Всего: нет



Цитата
Код

#include<iostream>
#include<stdio.h>

using namespace std;

void main()
{
cout<<"Hello!";
while(1);
}



вот так всё нормально работает

Так работает!!!
Но только латинскими символами.
А Вы не знаете, как включить поддержку кириллицы???
PM MAIL   Вверх
azesmcar
Дата 14.1.2005, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата
просто добавь в код, напрмиер, while(1); после cout
и все окно не исчезнет
при использовании getch() окно закроется при нажатии любой клавиши, а при while(1) его надо будет закрывать в ручную


Да да, зависшее окошко придется закрывать вручную..smile)
Посмотри в окошке TaskManager сколько ресурсов будет жрать этот бесконечный цикл...Какой в этом смысл??? getch() вполне подходит для этой цели...

Цитата
Окно не исчезло, но текст выдался в виде непонятных символов (наверное кодировка...),
А с этой проблемой можно справиться?


А тут уже getch() абсолютно непричем...
Ты пишешь в своей оболочке кирилицей win кодировкой...а программа твоя работает в досовском окне, т.е. тут нужна досовская кодировка...если хочешь на русском ковертируй кодировку или пиши в оболочке досовской кодировкой...


PM   Вверх
WebXL
Дата 14.1.2005, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.1.2005

Репутация: нет
Всего: нет



Цитата(azesmcar @ 14.1.2005, 13:37)
Цитата
просто добавь в код, напрмиер, while(1); после cout
и все окно не исчезнет
при использовании getch() окно закроется при нажатии любой клавиши, а при while(1) его надо будет закрывать в ручную


Да да, зависшее окошко придется закрывать вручную..smile)
Посмотри в окошке TaskManager сколько ресурсов будет жрать этот бесконечный цикл...Какой в этом смысл??? getch() вполне подходит для этой цели...

Цитата
Окно не исчезло, но текст выдался в виде непонятных символов (наверное кодировка...),
А с этой проблемой можно справиться?


А тут уже getch() абсолютно непричем...
Ты пишешь в своей оболочке кирилицей win кодировкой...а программа твоя работает в досовском окне, т.е. тут нужна досовская кодировка...если хочешь на русском ковертируй кодировку или пиши в оболочке досовской кодировкой...

Спасибо!
Разобрался, и за урок "умного" программирования спасибо - действительно неправильно, если с самого начала учиться программировать так, что простая программка будет жрать ресурсов как большая ОС :-)
PM MAIL   Вверх
Nicky
Дата 19.1.2005, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 18.12.2004
Где: Кишинёв

Репутация: нет
Всего: 1



Цитата

просто добавь в код, напрмиер, while(1); после cout
и все окно не исчезнет
при использовании getch() окно закроется при нажатии любой клавиши, а при while(1) его надо будет закрывать в ручную

Это плохой стиль программирования smile

Использование функции getch() лучший вариант в этом случае smile

Это сообщение отредактировал(а) Nicky - 19.1.2005, 14:58
PM MAIL ICQ   Вверх
Tripl-X
Дата 24.1.2005, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 29.12.2004

Репутация: 1
Всего: 1



Да,Nicky прав. тоько не забудь подключить библиотеку conio.h, я вот раз забыл, меня прееод на экзамене завалил...smile
PM MAIL ICQ   Вверх
Nastya
Дата 25.1.2005, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

Репутация: 5
Всего: 44



И еще перед вызовом getch()
напиши cout.flush() или cout<<endl
а то часть выведенного перед этим моежт не показаться


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
Nicky
Дата 26.1.2005, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 18.12.2004
Где: Кишинёв

Репутация: нет
Всего: 1



Цитата(Nastya @ 25.1.2005, 23:48)
И еще перед вызовом getch()
напиши cout.flush() или cout<<endl
а то часть выведенного перед этим моежт не показаться

с этим никогда пока ешё не было проблем smile smile
PM MAIL ICQ   Вверх
Tripl-X
Дата 27.1.2005, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 29.12.2004

Репутация: 1
Всего: 1



Nastya
Цитата(Nastya @ 26.1.2005, 03:48)
И еще перед вызовом getch()
напиши cout.flush() или cout<<endl
а то часть выведенного перед этим моежт не показаться


Ни разу не слышал... smile
PM MAIL ICQ   Вверх
Nicky
Дата 28.1.2005, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 18.12.2004
Где: Кишинёв

Репутация: нет
Всего: 1



Я тоже первый раз это вижу но всётаки опыт покажет ведь я так понял что Nasty достаточно опытна в этом smile так что я считаю эту информацию не одной из лишних.
Цитата
Лишняя инфа никогда не помешает, главное чтоб небыло ложью.


PM MAIL ICQ   Вверх
Nastya
Дата 28.1.2005, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

Репутация: 5
Всего: 44



Спасибо Nicky.
Для чего эта фишка. постараюсь пояснить.
Но вот вам вопрос smile в чем отличие cout<<endl от cout<<"\n"
Если второе это просто символ перевода коретки и перевода строки, то тгда зачем ввели второе.
Дело в том, что обычно (по умолчанию) cout поток буферезированный, т.е. все что вы выводите на экран сначало попадает в буфер, а после заполения или принудительного выталкивание уже "показывается" на экране.

так вот когда мысочетаем потовококвые функции с сишными функциями ввода/вывода, которой и является getch может быть ситуация, когда выведенный текст "застрянет" в буфере, если буфер заполнен частично.
Для этого и нужен cout.flush() это все протолкнуть smile



--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0790 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.