• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Нужна консультация специолиста ))

  • Автор темы Student_TRTU
  • Дата начала
S

Student_TRTU

Уважаемые знатоки и умельцы С++, вот я сделал функцию которая считывает введенные с клавиатуры символы, причем только числа. Ввод редактированный при нажатии BackSpace удаляется ненужный символ. Функция возвращает целочисленное значение int. Не могли бы вы посмотреть код , можно ли его оптимизировать или как то облегчить (особенно удаление ненужного символа). Заранее премного благодарен! :)
//-------------------------------------------------------------------------------------------------------
Код:
int funct()
{
char ch,
mas[20];

int buf,			  
count=0,
i=0,
x,
y;

x=wherex();
y=wherey();
do
{
ch=(char)getch();
buf=(int)ch;
if(buf>47 && buf<58 || buf==45)
{
gotoxy(x+count,y);
printf("%c",ch);
mas[i]=ch;
i++;
mas[i]='\0';
count++;
}
if(buf==8)
{
count-=1;
gotoxy(x+count,y);
printf(" ");
i-=1;
mas[i]='\0';
}
}while (ch!=13);
return atoi(mas);
}
//-----------------------------------------------------------------------------------------------------------
 
S

Student_TRTU

Ну что же такое почему никто не отзываеться ?
 
E

European

1. Что за магические функции wherex, wherey, gotoxy.
2. Что будет если я захочу ввести 21 символ?
3. Если уж и писать такие программки для самообразования, так лучше стандартную библиотеку использовать
 
S

Student_TRTU

функции wherex, wherey это положения курсора (не обращайте на них внимание это уменя в оформлении ... :D ) А задумано что пользователь не захочет ввести более 20 символов, да и int не воспримет более 10 знаков. А какими стандартными функциями ??? Подскажите, пожалуйста.
 
E

European

<!--QuoteBegin-Student_TRTU+21:03:2007, 20:49 -->
<span class="vbquote">(Student_TRTU @ 21:03:2007, 20:49 )</span><!--QuoteEBegin-->А какими стандартными функциями
[snapback]59777" rel="nofollow" target="_blank[/snapback]​
[/quote]
Смотреть в сторону стандартных потоков ввода/вывода - cin и сout соответственно
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!