Всем привет - я хочу следующее : Вводится символ, если это 3, 4, 5 - то выводим на экран, если нет, то не выводим. Если после того как нажали 3, нажали 4 или 5 то меняем значение на нововведённое (аналогично со всеми). Что - то кажется мне, что я с символом окончания строки что - то напортачил. Буду рад, если подкорректируете кусочек кода.
int len; char number[2]; len = 0; if ( ( ch = getch() ) != 0 ) switch ( ch ) { case 51,52,53 : //3, 4, 5 { if ( len != 1 ) { len++; number[1] = ch; }
Ты думаешь, это - вариант для 3-х символов? Сомневаюсь... Есть в С такая операция - "запятая". Она возвращает только последний результат, так что приведенный выше фрагмент аналогичен:
case 53 :
Чтобы сделать то, что ты задумал -
case 51: case 52: case 53: // 3, 4, 5
, тогда в этой метке будут обрабатываться все 3 символа...
Tan
22.11.2007 3:56
Спасибо, это учту на будущее, это всё эхо паскаля А в остальном что не так ?
volvo
22.11.2007 4:02
Лишние переменные и строки кода... В частности, len вообще не нужна, весь фрагмент:
... int amount, ch;
/* инициализировать number достаточно так */ char number[2] = " \0";
do { if((ch = getch()) != 0 ) switch(ch) { case 51: case 52: case 53 : number[0] = ch; break; } bar (600,100,620,110); outtextxy (600, 100, number); } while (ch != 13);
amount = atoi (number); ...
Tan
22.11.2007 4:07
Действительно, надо по максимуму брать от языка, спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.