Заменить возврат на вкладку для стандартного ввода - PullRequest
3 голосов
/ 22 ноября 2010

Я писал программу на C ++ для ввода значений для матрицы NxN. Обычно вводят целое число и нажимают клавишу возврата NxN раз. Но я бы хотел, чтобы курсор перемещал длину вкладки для каждого значения, введенного пользователем. Это продолжается для строки, а затем запрашивается новая строка для ввода для следующей строки. Мне известно об использовании curses.h для такой реализации, но я не понял, как это реализовать.

Спасибо.

#include <ncurses.h>
#include <iostream>

using namespace std;

int main()
{
  char ch[10];
  int array[4][4];
  initscr();
  raw();
  keypad(stdscr, TRUE);
  echo();

  printw("Enter elements a 4x4 array: \n");
  for(int i=0;i<4;i++) {
    for(int j=0 ; j<4; j++) {
      getstr(ch);
      array[i][j]=atoi(ch);
      addch('\t'); // This is executed after the newline return is received
      refresh();
    }
    addch('\n');
  }

  getch();
  endwin();
  return 0;
}

Ответы [ 3 ]

3 голосов
/ 22 ноября 2010

Не хватает кода: что вы пробовали?В чем проблема?

Если вы хотите попасть в ncurses и не знаете, с чего начать, я бы порекомендовал прочитать некоторые учебники: см. эту страницу и эта страница о взаимодействии клавиатуры.Не стесняйтесь приходить и задавать дополнительные вопросы, если у вас возникнут проблемы, когда у вас будет какой-то код.

0 голосов
/ 22 ноября 2010

То есть вы хотите изменить пользовательский ввод и отобразить что-то другое?

Это не очень хорошая идея (это будет очень запутанно для пользователя).

Если пользователь решилнажмите ввод после каждого элемента, после каждого элемента должен быть ввод.Если он просто делит элементы с пробелом, он не должен отображать что-то еще.

0 голосов
/ 22 ноября 2010

Если вы вводите значения с помощью cin >> value;, то любой пробел является разделителем. Вы также можете ввести табуляцию или пробел вместо возврата (кроме того, что значение доступно для чтения, а не для немедленного чтения).

...