Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
#1

Создание текстового окна - C++

11.01.2016, 13:57. Просмотров 834. Ответов 25

Добрый день.

Пробую создать текствое окно на плюсах. Среда разработки - Qt Creator, компилятор - MinGW. Код следующий:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    window(10,10,60,40);
    gotoxy(2,3);
    cout << "Hello world";
    return 0;
}
Но компилятор почему-то выдаёт ошибки:
Код
'window' was not declared in this scope.
'gotoxy' was not declared in this scope.
Не пойму в чём причина. Когда требовалась очистка экрана пробовал использовать clrscr() - с тем же результатом, что и выше. Пришлось заменить на system('cls').
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2016, 13:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Создание текстового окна (C++):

Создание текстового файла - C++
Пожалуйста помоги. Нужно написать программу, которая создает текстовый файл и записывает в него: 1. Вводимые с клавиатуры m,n и...

Создание словаря текстового файла. - C++
Здравствуй!! Помогите пожалуйста начинающему программисту. Задача такая: есть текстовый файл .txt в нём содержится текст, нужно...

Создание копии текстового файла - C++
Всем привет :) Мне нужно написать программу, которая создаёт копию содержимого текстового файла «test1.txt». Имя выходного файла ввести с...

Создание и удаление текстового файла - C++
Люди добрые помогите пожалуйста. делаю курсовую задание &quot;Создание и удаление текстового файла&quot;, саму программу сделал вот теперь нужно...

Создание текстового файла и его изменение - C++
Добрый вечер,помогите написать программу,создающую текстовый файл F1 не менее, чем из 10 строк и записать в него информацию. Скопировать...

Создание текстового файла со строками заданной длины - C++
У меня вопрос- если нужно считать информацию с одного текстового файла а затем сохранить в другой файл тот же самый текст, но уже разбитый...

25
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,776
Записей в блоге: 3
Завершенные тесты: 1
11.01.2016, 14:01 #2
Цитата Сообщение от inviter42 Посмотреть сообщение
Не пойму в чём причина.
В старом учебнике и в отсутствии TurboC++?
0
inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
11.01.2016, 14:06  [ТС] #3
Croessmah, в чём принципиальное отличие TurboC++ от Qt в рамках обработки <conio.h>? Делаю не по учебнику, а по методичке, которую выдали в универе. Но раз вы говорите, что информация там старая, я ничего против не имею. Я всего лишь хочу получись несколько более внятный ответ в плане развёрнутости. И если данная конкструкция по какой-то причине не работает\не актуальна для использования, то чем её заменить.
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,776
Записей в блоге: 3
Завершенные тесты: 1
11.01.2016, 14:18 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от inviter42 Посмотреть сообщение
Я всего лишь хочу получись несколько более внятный ответ в плане развёрнутости. И если данная конкструкция по какой-то причине не работает\не актуальна для использования, то чем её заменить.
Да даже в википедии написано
Сonio.h (от англ. console input-output — консольный ввод-вывод) — заголовочный файл, используемый в старых компиляторах, работающих в операционных системах MS-DOS, для создания текстового интерфейса пользователя. Тем не менее, он не является частью языка программирования Си, стандартной библиотеки языка Си, ISO C или требуемой стандартом POSIX.

Этот заголовочный файл объявляет несколько библиотечных функций для работы с «консольным вводом и выводом» программы. Большинство компиляторов языка Си, предназначенных для DOS, Windows 3.x, Phar Lap, DOSX, OS/2 или Win32 имели этот файл и обеспечивали сопутствующие библиотечные функции в библиотеке Си по умолчанию. Большинство компиляторов языка Си, предназначенных для UNIX и Linux, не имеют этого файла и не обеспечивают сопутствующих библиотечных функций.

Библиотечные функции, объявленные в conio.h, весьма различались в зависимости от компилятора. Первоначально реализованные в Microsoft Visual C++ различные функции привязывались напрямую к нескольким первым функциям DOS, связанным с прерыванием 21h. Но библиотека, поставляемая с Turbo C++ и Borland C++, не использует DOS API, а вместо этого напрямую обращается к видеопамяти для вывода информации и использования сигналов прерывания BIOS.

Компиляторы, предназначенные для операционных систем отличных от DOS, таких как Linux, Windows и OS/2, обеспечивали различные реализации этих функций.
Вывод - conio.h старое, унылое, не стандартное решение.

Чем заменить?
Да есть всякие реализации этих функций под винду и новые компиляторы.
Даже на форуме есть.
Например, вот реализация gotoxy
1
inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
11.01.2016, 14:22  [ТС] #5
Croessmah, окей, таким образом от использования <conio.h> в современном программировании лучше отказаться. Это ясно, но тогда чем именно заменить её функции? Я имею в виду, например, для очистки экрана можно использовать соответствующую команду консоли, а для функции window() существует какой-то аналог?
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,776
Записей в блоге: 3
Завершенные тесты: 1
11.01.2016, 14:30 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Готового решения не подскажу.
Можно написать руками аналоги,
инфу по функциям API для управления консолью посмотреть на MSDN и в гугле.
Вот немного информации на русском
1
inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
11.01.2016, 14:31  [ТС] #7
Croessmah, благодарю. Постараюсь дальше разобраться самостоятельно.
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,776
Записей в блоге: 3
Завершенные тесты: 1
11.01.2016, 14:34 #8
Цитата Сообщение от inviter42 Посмотреть сообщение
Постараюсь дальше разобраться самостоятельно.
Ну если что, заходите, спрашивайте.
Если видно, что человек старается,
то тут постараются помочь чем смогут
0
nord_v
329 / 177 / 69
Регистрация: 22.08.2013
Сообщений: 724
11.01.2016, 14:45 #9
Цитата Сообщение от inviter42 Посмотреть сообщение
но тогда чем именно заменить её функции? Я имею в виду, например, для очистки экрана можно использовать соответствующую команду консоли, а для функции window() существует какой-то аналог?
Красота неописуемая! Документация: http://www.cs.colorado.edu/~main/bgi/
0
Миниатюры
Создание текстового окна  
inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
11.01.2016, 14:48  [ТС] #10
nord_v, хм, вообще говоря имелось в виду текстовое окно. Т.е. псевдоокно внутри консоли. А Croessmah вообще сказал, что <conio.h> пора отправить на заслуженную пенсию
Но всё ровно благодарю за ответ!

[upd] я вот посмотрел на ваш код и теперь начинаю думать, что оперировать с реальным окном будет проще.
0
nord_v
329 / 177 / 69
Регистрация: 22.08.2013
Сообщений: 724
11.01.2016, 14:59 #11
Цитата Сообщение от inviter42 Посмотреть сообщение
Croessmah вообще сказал, что <conio.h> пора отправить на заслуженную пенсию
Так это не conio.h, это bgi под Windows (#include <conio.h> там можно убрать).
0
inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
11.01.2016, 15:03  [ТС] #12
nord_v, я так понимаю, что в качестве bgi тут служит <graphics.h>, поправьте меня, если я не прав. Я погуглил и люди со стаковерфлоу говорят, что она(<graphics.h>) тоже устарела и лучше использовать winAPI вместо неё.
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,776
Записей в блоге: 3
Завершенные тесты: 1
11.01.2016, 15:11 #13
Цитата Сообщение от inviter42 Посмотреть сообщение
Я погуглил и люди со стаковерфлоу говорят, что она(<graphics.h>) тоже устарела
правильно говорят.
Цитата Сообщение от inviter42 Посмотреть сообщение
и лучше использовать winAPI вместо неё.
если что-то простое, то можно и с WinAPI наваять.
Сложное тоже можно, но очень муторно, долго и подвержено ошибкам.
Лучше использовать тогда готовый framework для GUI.
0
nord_v
329 / 177 / 69
Регистрация: 22.08.2013
Сообщений: 724
11.01.2016, 15:12 #14
Цитата Сообщение от inviter42 Посмотреть сообщение
что в качестве bgi тут служит <graphics.h>
Это заголовочный файл библиотеки. Библиотека собирается.
Цитата Сообщение от inviter42 Посмотреть сообщение
Я погуглил и люди со стаковерфлоу говорят, что она(<graphics.h>) тоже устарела и лучше использовать winAPI вместо неё.
Я же не знаю твои задачи. Я и bgi не знаю (так же, как и conio), но предполагаю, что это нечто сопоставимое с conio.h, поэтому и предложил. Это нечто простое, что там есть можешь посмотреть в документации.
Если тебе нужно что-то посложнее, то есть SFML, Qt и пр., а на winAPI писать - муторное занятие, но это твоё дело.
0
inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
11.01.2016, 15:21  [ТС] #15
Croessmah, то есть я правильно понимаю, что при решении реальных задач для создания GUI используются фреймворки, а winAPI практически никто не использует? Вы упомянули, что разработка на winAPI подвержена ошибкам - почему? Оно так плохо работает?

У меня небольшой стак лабораторный работ, ничего серьёзного. Использовать сторонний фрэймворк для этого неразумно в моём случае. Но интересно на будущее как обстоят дела IRL.

Добавлено через 4 минуты
[upd] Croessmah, вообще есть ли возможность создать окно с использованием стандартных средств Qt без использования устаревших библиотек и winAPI?
0
11.01.2016, 15:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2016, 15:21
Привет! Вот еще темы с ответами:

Создание генерации имени создаваемого текстового файла - C++
Нужно создать несколько текстовых файлов, но вот сейчас столкнулся с такой ситуацией что каждому текстовому файлу прописывать имя раз за...

Считывание строк из текстового файла и создание папки - C++
ВОзникла задача создать кучу папок с разными именами, возникла идея, что можно запихать эти названия в текстовый файл, где новая строка-имя...

Создание Output окна с++ - C++
Добрый вечер, как в с++ VS13 создать своё Output окно, чтобы всё писалось в стандартное output window и при определёной метке еще и в...

Создание формы (окна) - C++
Здравствуйте! Кто - нибудь знает как создать окно (или по проще белый прямоугольник по центру экрана) без использования WinAPI и всяких...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru