Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
xod
156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185
1

Есть ли в С аналог оператора locate (установка курсора на нужную позицию)?

16.07.2014, 20:32. Просмотров 1454. Ответов 23
Метки нет (Все метки)

В языке бейсик оператор locate устанавливает
курсор в нужное место. С этого места можно например
выводить данные. А в Си?? Что есть? Как сделать?
Что подключить? (речь идёт о консольной программе).
Буду рад любой подсказке (лучше мини-пример)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2014, 20:32
Ответы с готовыми решениями:

Установка combo в нужную позицию
Первый combo прявязан к "головной" таблице БД, display member - name(имя региона), value member -...

Установка курсора в консоли в заданную позицию
Здравствуйте, Друзья. Суть вопроса во в чем: в С++ для перемещения созданного графического...

Программная установка курсора в текстовом поле в заданную позицию
есть, допустим такое текстовое поле: <input type='Text' name='query' size='50' ...

Есть ли на Лисп аналог оператора присвоения?
Я только начал изучать Лисп и меня заинтересовало 1. Есть ли на Лисп аналог оператора присвоения?...

Как найти позицию (именно позицию на экране) курсора TextBox'a
Я хочу узнать позицию курсора (под ним должна подсказка всплывать, а точнее, под словом) в...

23
ValeryS
Модератор
7523 / 5700 / 736
Регистрация: 14.02.2011
Сообщений: 19,508
Завершенные тесты: 1
16.07.2014, 20:40 2
Лучший ответ Сообщение было отмечено xod как решение

Решение

Цитата Сообщение от xod Посмотреть сообщение
А в Си?? Что есть?
а ничего нет
Сии ничего не знает ни про экраны ни про клавиатуры
всем этим занимаются библиотеки стандартные или сторонние
а они зависят от того куда выводится результат
Цитата Сообщение от xod Посмотреть сообщение
речь идёт о консольной программе
консоль это не черный экран
консоль это "черный яшик" который программе виден как поток
например телеграфный аппарат,который печатает на ленте, тоже вполне себе консоль

так что зависит от среды где будет выполнятся "консольная программа", в ДОС были прерывания которые устанавливали курсор, в винде можно средствами ВинАПИ, в линуксе и на МАКе не знаю
1
xod
156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185
16.07.2014, 20:44  [ТС] 3
У меня программа CodeBlocks.
Она работает в Windows XP.
Для неё экран - командная строка
0
GetHelp
60 / 61 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
16.07.2014, 20:48 4
кстати интересная тема, особенно было бы интересно как это сделать на визуальном контроле, по типу как часто бывает в редакторах кодов, там допустим делать перевод каретки и курсор перескакивает на уровень начала предыдущей строки, но он не вставляет при этом пробелов (это видно если нажать backscape), а именно как то вставляет длинный пробел, который удаляется за одно нажатие...
1
16.07.2014, 20:48
ValeryS
Модератор
7523 / 5700 / 736
Регистрация: 14.02.2011
Сообщений: 19,508
Завершенные тесты: 1
16.07.2014, 20:52 5
Лучший ответ Сообщение было отмечено xod как решение

Решение

Цитата Сообщение от xod Посмотреть сообщение
Для неё экран - командная строка
сам себе и ответил
строка

но вроде у CodeBlocks есть такой заголовочный файл "graphics.h"
который позволяет изголятся с экраном
но не уверен, лучше сверится с документацией
вот была тема
Как подключить и воспользоваться библиотекой graphics.h

Добавлено через 2 минуты
Цитата Сообщение от GetHelp Посмотреть сообщение
а именно как то вставляет длинный пробел, который удаляется за одно нажатие...
ты не табуляцию ли часом имеешь ввиду?
C
1
printf("a\tb");
2
GetHelp
60 / 61 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
16.07.2014, 20:56 6
Цитата Сообщение от ValeryS Посмотреть сообщение
ты не табуляцию ли часом имеешь ввиду?
О_о первый раз такую штуку вижу, но нет, я имею ввиду не табуляцию, ну откройте чисто вижал студию,
там такой же редактор кода или нотепад++, смысл в том чтобы этот пробел был конкретно заданной длины (в символах)
1
xod
156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185
16.07.2014, 20:59  [ТС] 7
Нет. Я имею в виду не табуляцию и не графический экран.
Есть ещё текстовый экран шириной 80 символов. Вот о нем и речь.
Но все равно Вам Большое Спасибо!! Теперь я знаю, что имею
и лишних вопросов на форуме не задам.
Спасибо!
0
ValeryS
Модератор
7523 / 5700 / 736
Регистрация: 14.02.2011
Сообщений: 19,508
Завершенные тесты: 1
16.07.2014, 21:00 8
Цитата Сообщение от GetHelp Посмотреть сообщение
смысл в том чтобы этот пробел был конкретно заданной длины (в символах)
если это отступ "красной строки" то он задается где то в настройках редактора, не помню где
и он не переносим
если сохранишь что набрал, в текстовом файле "*.txt" то увидишь что все эти отступы потерялись
1
GetHelp
60 / 61 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
16.07.2014, 21:08 9
ValeryS, нет знаю что такое отступ красной строки, но если открыть блокнотом любой .h-ник или .cpp-ник из первого попавшегося проекта там все отступы вполне себе присутствуют... а впрочем кажется там действительно использует обычная табуляция... просто с разными шрифтами она выглядит по разному, а в блокноте нет шрифтов и она там везде одинаковая...
1
Evg
Эксперт CАвтор FAQ
19874 / 7505 / 572
Регистрация: 30.03.2009
Сообщений: 20,949
Записей в блоге: 30
16.07.2014, 21:12 10
Цитата Сообщение от xod Посмотреть сообщение
Есть ещё текстовый экран шириной 80 символов. Вот о нем и речь
Вот этот самый текстовый экран - это некая встроенная особенность языка BASIC (т.к. язык ориентирован на начинающих). В культурных языках экран (хоть текстовый, хоть графический) - это устройство, внешнее по отношению к языку программирования. Общение с этим устройством происходит через библиотечные функции. Библиотека как бы является драйвером устройства по отношению к языку (если можно так коряво выразиться)
2
ValeryS
Модератор
7523 / 5700 / 736
Регистрация: 14.02.2011
Сообщений: 19,508
Завершенные тесты: 1
16.07.2014, 21:14 11
так на будущее
что может printf
https://sites.google.com/site/bashhackers/commands/printf
http://www.labdesign.ru/content-140.html
может даже песенки петь
C++
1
printf("\a");
правда, хреново

это еще не все, гдето потерял ссылку где описаны все ключи

Добавлено через 1 минуту

Не по теме:

Evg, Приветствую!
давно не встречались:senor:

1
Evg
Эксперт CАвтор FAQ
19874 / 7505 / 572
Регистрация: 30.03.2009
Сообщений: 20,949
Записей в блоге: 30
16.07.2014, 21:15 12
Цитата Сообщение от GetHelp Посмотреть сообщение
там такой же редактор кода или нотепад++, смысл в том чтобы этот пробел был конкретно заданной длины (в символах)
Это особенности текстовых редакторов. По смыслу есть метки горизонтальной табуляции, и при нажатии backspace как бы происходит удаление одного символа. Но в реальности в текстовый файл попадает 4 пробела (или 8 пробелов, или символ табуляции - зависит от настроек редактора)

Добавлено через 38 секунд
Цитата Сообщение от ValeryS Посмотреть сообщение

Не по теме:

Evg, Приветствую!
давно не встречались:senor:

)
1
ValeryS
Модератор
7523 / 5700 / 736
Регистрация: 14.02.2011
Сообщений: 19,508
Завершенные тесты: 1
16.07.2014, 21:20 13
Цитата Сообщение от GetHelp Посмотреть сообщение
но если открыть блокнотом любой .h-ник или .cpp-ник из первого попавшегося проекта там все отступы вполне себе присутствуют...
так открой не блокнотом а любым HEX редактором например WinHex
и увидишь что за код стоит
перевод строки 0x0D 0x0A
табуляция, по моему 0x09, пишу по памяти могу ошибиться

Добавлено через 4 минуты
вот нашел
Управляющие символы
http://ru.wikipedia.org/wiki/Управляющие_символы
0
korvin_
2404 / 1881 / 341
Регистрация: 28.04.2012
Сообщений: 6,476
16.07.2014, 21:58 14
Цитата Сообщение от ValeryS Посмотреть сообщение
в линуксе
ncurses например.
1
Vtulhu
425 / 379 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
16.07.2014, 22:15 15
Пдозреваю, что единственный выход - писать свои врапперы к винапи. Если речь о винде, конечно. Сам в свое время искал какой-то аналог ncurses - не нашел.

Есть еще один вариант, но он совсем больной. Формировать массив 80х25, который будет как бы отдельным кадром. И просто выводить его. Новый кадр будет сдвигать старый вверх. Или каждый раз очищать экран. Вот и все. Но это не для динамичных вещей, конечно. Например, если экран достаточно обновлять раз в секунду. А лучше еще реже.
0
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10296 / 6178 / 1555
Регистрация: 25.07.2009
Сообщений: 11,762
17.07.2014, 15:20 16
Цитата Сообщение от xod Посмотреть сообщение
в Windows XP
Цитата Сообщение от ValeryS Посмотреть сообщение
в винде можно средствами ВинАПИ
http://msdn.microsoft.com/ru-ru/libr...=vs.85%29.aspx
http://www.cyberforum.ru/post1334375.html
0
Catstail
Модератор
24382 / 12324 / 2237
Регистрация: 12.02.2012
Сообщений: 20,021
17.07.2014, 19:58 17
Цитата Сообщение от Evg Посмотреть сообщение
Вот этот самый текстовый экран - это некая встроенная особенность языка BASIC (т.к. язык ориентирован на начинающих).
- тут сразу две ошибки: 80 символов - это не от бэйсика, а от перфокарты и бэйсик уже давным-давно является весьма продвинутым языком (см. VB,VBA,VB.Net).
0
Vtulhu
425 / 379 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
18.07.2014, 00:54 18
Цитата Сообщение от Catstail Посмотреть сообщение
см. VB,VBA,VB.Net
Плохие примеры. VB мертв (даже установить проблематично на современные системы), VBA - нишевая вещь, VB.NET - это вообще C# с бейсиковым синтаксисом. Лучше ткнуть пальцем в PureBasic, PowerBasic и, может быть, Xojo.
0
Catstail
Модератор
24382 / 12324 / 2237
Регистрация: 12.02.2012
Сообщений: 20,021
18.07.2014, 10:37 19
Хорошие примеры. И VB не мертв (см. соотв. раздел форума), VBA - да, нишевый, но ниша внушительная. А последнее - вообще песня! Если можно реализовать C# с синтаксисом VB, то в топку C#! (VB проще). Со мнением о PowerBasic, PureBasic (можно добавить и FreeBasic) - согласен.
0
Evg
Эксперт CАвтор FAQ
19874 / 7505 / 572
Регистрация: 30.03.2009
Сообщений: 20,949
Записей в блоге: 30
18.07.2014, 10:57 20
Ещё 5-6-7 постов и далее пойдёт срач на тему windows vs linux
0
18.07.2014, 10:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2014, 10:57

COM. Вставка текста в нужную позицию
Здравствуйте! Подскажите плз как вставить текст в выделенные поля: Сам делаю что-то типа...

Вставить элемент в нужную позицию List
Привет всем. Есть вопрос. Есть список -List - имя его spisok. он заполен, как вставить в нужную...

Добавление текста на нужную позицию в файле
есть файл в котором вот так: строка1 строка2 .... .... еще строк куча потом текст: ...


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

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

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