матрица в СИ
если n=2, то пользователь должен ввести 2 элемента через пробел, если нажать ЕНТЕР, то курсор не должен переходить на другую строку, а должен делаться пробел. Если ввести букву, то курсор должен оставться на этом же месте, или затереть эту букву а вмето нее все заного вводить число. Как только ввели два элемента через пробел, то делается printf("\n");
Ну Ты блин и захотел.
Под виндой я не знаю, а под ДОС есть такая мисль (наверное что не наилутшая):
Лезеш в документацию по 21 прериванию ДОСа (здесь же на сайте есть), ищеш там функцию нажатия клавиши без вывода на екран, делаеш свой перехвативаемий ввод и колбасиш все своими руками. Намахатся придется ......
Может что лутшее конечно есть, но я бы так делал.
как задать на экране матрицу в явном виде NxX? Т.е. если n=2, то пользователь должен ввести 2 элемента через пробел, если нажать ЕНТЕР, то курсор не должен переходить на другую строку, а должен делаться пробел. Если ввести букву, то курсор должен оставться на этом же месте (т.е делается что-то вроде типа \b), или затереть эту букву а вмето нее все заного вводить число. Как только ввели два элемента через пробел, то делается printf("\n"); и так далее до последнего столбца.
Если в голом Си под дос, то там есть функции позиционирования в нужном месте экрана.
Используй их, устанавливай курсор ввода в нужное место экрана и все дела
Если в голом Си под дос, то там есть функции позиционирования в нужном месте экрана.
Используй их, устанавливай курсор ввода в нужное место экрана и все дела
А буквы и прочий мусор как прятать тогда ?
А буквы и прочий мусор как прятать тогда ?
Не совсем понял о каком мусоре идет речь.
Не совсем понял о каком мусоре идет речь.
Смотрите в первом посте
"Если ввести букву, то курсор должен оставться на этом же месте, или затереть эту букву а вмето нее все заного вводить число"
Хотя Ты прав. Можно обойтись без асма, а мусор затирать виводом пробелов, или непосредственно в видеопамяти убивать. Но всеравно придется свой ввод делать посимвольный. Всеравно намахатся надо немного.
Хотя Ты прав. Можно обойтись без асма, а мусор затирать виводом пробелов, или непосредственно в видеопамяти убивать.
Так я и не понял из вопроса где нужно вводить матрицу? На консольном экране (или вообще дос, из некоторых ответов) или в обычной форме? Если дос, то причем тут этот форум? Если в Мемо, то ловите события KeyDown и иже с ними и обрабатывайте коды как надо - если буква, то не пускать, если ентер, то смотреть сколько чисел в текущей строке и заменять его на пробел, если меньше чем колонок в матрице. Проще всего грид взять опять же.
Для Rebbit:
Слова "Лезеш", "ищеш", "делаеш" пишутся с мягким знаком на конце, а показное незнание русского языка не является признаком ни крутости, ни хорошего воспитания, ни образования тем более.
Смотрите в первом посте
"Если ввести букву, то курсор должен оставться на этом же месте, или затереть эту букву а вмето нее все заного вводить число"
Хотя Ты прав. Можно обойтись без асма, а мусор затирать виводом пробелов, или непосредственно в видеопамяти убивать. Но всеравно придется свой ввод делать посимвольный. Всеравно намахатся надо немного.
Можно простыми функциями стереть область экрана, а затем установить в нужное место курсор.
Ничего здесь махаться не придется.
Я такое делал и скажу, что никаких сложностей.
Соответствующие функции есть и под виндой.
Так я и не понял из вопроса где нужно вводить матрицу? На консольном экране (или вообще дос, из некоторых ответов) или в обычной форме?
Судя по словам printf("\n") речь идет о консольном окне.
а показное незнание русского языка не является признаком ни крутости, ни хорошего воспитания, ни образования тем более.
С чево вы взяли что показное?
Я сам против тово что у нас русский язык давно перестали в щколах преподавать. Так как я ево никогда не учил то и пишу плохо. Говорю с акцентом, понимаю хорошо, а пишу ужасно.
На щет образования согласен. А крутость и воспитание здесь ни при чем.
С чево вы взяли что показное?
Я сам против тово что у нас русский язык давно перестали в щколах преподавать. Так как я ево никогда не учил то и пишу плохо. Говорю с акцентом, понимаю хорошо, а пишу ужасно.
На щет образования согласен. А крутость и воспитание здесь ни при чем.
Ну что ж, я никого не хотел обидеть. Просто город сразу не глянул, а тут и России таких грамотеев порой встретишь на просторах инета, что труба просто :)
А что там насчет позиционирования курсора? Это что за функция такая?
Программа под Дос...
А что там насчет позиционирования курсора? Это что за функция такая?
#include <iostream>
#include <windows.h>
using namespace std;
main()
{
HANDLE hout = ::GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord = {15,5};
SetConsoleCursorPosition(hout,coord);
}
Работает в консольных приложениях.