Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Функция gets()


Автор: Arden 8.6.2009, 22:09
Здравствуйте.
Пишу проект "Работа с матрицами". Возникла следующая проблема. В описанном ниже коде, функция gets(a) вызывается только со второго раза. Точнее она, конечно же, вызывается и в первый раз, но мигающего курсора не наблюдается, и данные она считывает непонятно откуда.
Помогите, пожалуйста, решить проблему.

Код

int main(int argc, char *argv[])
{
    char n;
    do{
        n=getch();
        switch(n){
                  case '1' : createnfillM();
                             break;
                  case '2' : printM();
                             break;
                  case '3' : deleteM();
                             clrscr();
                             break;
                  case '4' : cout<<"Wpisz operacje:"<<endl;
                             char a[20];
                             gets(a);
                             spacedel(a);
                             oper(a);
                             clrscr();
                             break;
                  case '5' : clrscr();
                             break;
                  default : clrscr();
                            break;
                            
                  }
        }
        while(n!='5');
    system("PAUSE");
    return EXIT_SUCCESS;


З.Ы
На всякий случай прикрепил весь исходный код. Там еще море дырок, так что не судите строго. Хотя от советов не откажусь, если кому-то вдруг захочется разбирать там что-то smile 

Автор: triclosan 11.6.2009, 18:27
если getch() из заголовочника conio.h, то для нее отключен echo-вывод считаного символа

Автор: ller 12.6.2009, 12:47
И многие управляющие символы идут двумя байтами, т.е. надо 2 раза вызывать getch() к примеру для стрелок вверх вниз, итд.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)