Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

матрица в СИ

12K
02 октября 2005 года
Cherep
8 / / 10.09.2005
как задать на экране матрицу в явном виде NxX? Т.е. если n=2, то пользователь должен ввести 2 элемента через пробел, если нажать ЕНТЕР, то курсор не должен переходить на другую строку, а должен делаться пробел. Если ввести букву, то курсор должен оставться на этом же месте (т.е делается что-то вроде типа \b), или затереть эту букву а вмето нее все заного вводить число. Как только ввели два элемента через пробел, то делается printf("\n"); и так далее до последнего столбца.
276
02 октября 2005 года
Rebbit
1.1K / / 01.08.2005
Цитата:
Originally posted by Cherep
если n=2, то пользователь должен ввести 2 элемента через пробел, если нажать ЕНТЕР, то курсор не должен переходить на другую строку, а должен делаться пробел. Если ввести букву, то курсор должен оставться на этом же месте, или затереть эту букву а вмето нее все заного вводить число. Как только ввели два элемента через пробел, то делается printf("\n");



Ну Ты блин и захотел.
Под виндой я не знаю, а под ДОС есть такая мисль (наверное что не наилутшая):
Лезеш в документацию по 21 прериванию ДОСа (здесь же на сайте есть), ищеш там функцию нажатия клавиши без вывода на екран, делаеш свой перехвативаемий ввод и колбасиш все своими руками. Намахатся придется ......
Может что лутшее конечно есть, но я бы так делал.

9.3K
03 октября 2005 года
viv
21 / / 20.04.2005
Цитата:
Originally posted by Cherep
как задать на экране матрицу в явном виде NxX? Т.е. если n=2, то пользователь должен ввести 2 элемента через пробел, если нажать ЕНТЕР, то курсор не должен переходить на другую строку, а должен делаться пробел. Если ввести букву, то курсор должен оставться на этом же месте (т.е делается что-то вроде типа \b), или затереть эту букву а вмето нее все заного вводить число. Как только ввели два элемента через пробел, то делается printf("\n"); и так далее до последнего столбца.



Если в голом Си под дос, то там есть функции позиционирования в нужном месте экрана.
Используй их, устанавливай курсор ввода в нужное место экрана и все дела

276
03 октября 2005 года
Rebbit
1.1K / / 01.08.2005
Цитата:
Originally posted by viv
Если в голом Си под дос, то там есть функции позиционирования в нужном месте экрана.
Используй их, устанавливай курсор ввода в нужное место экрана и все дела



А буквы и прочий мусор как прятать тогда ?

9.3K
03 октября 2005 года
viv
21 / / 20.04.2005
Цитата:
Originally posted by Rebbit
А буквы и прочий мусор как прятать тогда ?


Не совсем понял о каком мусоре идет речь.

276
03 октября 2005 года
Rebbit
1.1K / / 01.08.2005
Цитата:
Originally posted by viv
Не совсем понял о каком мусоре идет речь.



Смотрите в первом посте
"Если ввести букву, то курсор должен оставться на этом же месте, или затереть эту букву а вмето нее все заного вводить число"

Хотя Ты прав. Можно обойтись без асма, а мусор затирать виводом пробелов, или непосредственно в видеопамяти убивать. Но всеравно придется свой ввод делать посимвольный. Всеравно намахатся надо немного.

362
04 октября 2005 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by Rebbit
Хотя Ты прав. Можно обойтись без асма, а мусор затирать виводом пробелов, или непосредственно в видеопамяти убивать.



Так я и не понял из вопроса где нужно вводить матрицу? На консольном экране (или вообще дос, из некоторых ответов) или в обычной форме? Если дос, то причем тут этот форум? Если в Мемо, то ловите события KeyDown и иже с ними и обрабатывайте коды как надо - если буква, то не пускать, если ентер, то смотреть сколько чисел в текущей строке и заменять его на пробел, если меньше чем колонок в матрице. Проще всего грид взять опять же.

Для Rebbit:
Слова "Лезеш", "ищеш", "делаеш" пишутся с мягким знаком на конце, а показное незнание русского языка не является признаком ни крутости, ни хорошего воспитания, ни образования тем более.

9.3K
04 октября 2005 года
viv
21 / / 20.04.2005
Цитата:
Originally posted by Rebbit
Смотрите в первом посте
"Если ввести букву, то курсор должен оставться на этом же месте, или затереть эту букву а вмето нее все заного вводить число"

Хотя Ты прав. Можно обойтись без асма, а мусор затирать виводом пробелов, или непосредственно в видеопамяти убивать. Но всеравно придется свой ввод делать посимвольный. Всеравно намахатся надо немного.



Можно простыми функциями стереть область экрана, а затем установить в нужное место курсор.
Ничего здесь махаться не придется.
Я такое делал и скажу, что никаких сложностей.
Соответствующие функции есть и под виндой.

276
04 октября 2005 года
Rebbit
1.1K / / 01.08.2005
Цитата:
Originally posted by _kolyan
Так я и не понял из вопроса где нужно вводить матрицу? На консольном экране (или вообще дос, из некоторых ответов) или в обычной форме?



Судя по словам printf("\n") речь идет о консольном окне.

Цитата:


а показное незнание русского языка не является признаком ни крутости, ни хорошего воспитания, ни образования тем более.



С чево вы взяли что показное?
Я сам против тово что у нас русский язык давно перестали в щколах преподавать. Так как я ево никогда не учил то и пишу плохо. Говорю с акцентом, понимаю хорошо, а пишу ужасно.
На щет образования согласен. А крутость и воспитание здесь ни при чем.

362
05 октября 2005 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by Rebbit
С чево вы взяли что показное?
Я сам против тово что у нас русский язык давно перестали в щколах преподавать. Так как я ево никогда не учил то и пишу плохо. Говорю с акцентом, понимаю хорошо, а пишу ужасно.
На щет образования согласен. А крутость и воспитание здесь ни при чем.



Ну что ж, я никого не хотел обидеть. Просто город сразу не глянул, а тут и России таких грамотеев порой встретишь на просторах инета, что труба просто :)

12K
05 октября 2005 года
Cherep
8 / / 10.09.2005
Программа под Дос...
А что там насчет позиционирования курсора? Это что за функция такая?
6.4K
05 октября 2005 года
Host
122 / / 22.09.2005
Цитата:
Originally posted by Cherep
Программа под Дос...
А что там насчет позиционирования курсора? Это что за функция такая?



#include <iostream>
#include <windows.h>
using namespace std;

main()
{
HANDLE hout = ::GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord = {15,5};
SetConsoleCursorPosition(hout,coord);
}

Работает в консольных приложениях.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог