Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите новичку в этом деле Borland C++ Rulez / 13 сообщений из 13, страница 1 из 1
12.11.2006, 18:36
    #34122141
tehnix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
Народ подскажите пожалуйста, не могу понять почему она не работает. Помоему не работает клавиша "ESC", при ее нажатии должен вывестись результат. А она Циклится на вот этом моменте и все!

printf("enter your characters; the ESC should be entered last ");
i=0;
while ((c=getchar())!=eof)
{
CountSimb(c,a,s);
i++;
}

А сама программа ниже

//Программа подсчет символов

#include <stdio.h>
#include <conio.h>

#define eof 27
#define m 5

CountSimb(char c, int v[], char s[])
{
int i;
switch(c)
{
case 'a':
v[0]++;
s[0]=c;
break;
case 'b':
v[1]++;
s[1]=c;
break;
case 'c':
v[2]++;
s[2]=c;
break;
case 'd':
v[3]++;
s[3]=c;
break;
default: //все прочие символы
v[4]++;
s[4]='!';
break;
}
}
main()
{
int c,i,a[m];
char s[m];
for (i=0; i<m; i++)
a =0;
printf("enter your characters; the ESC should be entered last ");
i=0;
while ((c=getchar())!=eof)
{
CountSimb(c,a,s);
i++;
}
for (i=0; i<m; i++)
printf("Key=%c count =%d\n",s,a);
getch();
}
...
Рейтинг: 0 / 0
12.11.2006, 18:46
    #34122153
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
BC аццтой

аффтопитезь
...
Рейтинг: 0 / 0
12.11.2006, 18:54
    #34122159
tehnix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
А что лучше?
...
Рейтинг: 0 / 0
12.11.2006, 18:56
    #34122161
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
tehnixА что лучше?

хароший вапрос

но явно БЦ хуже ВСВСи
...
Рейтинг: 0 / 0
12.11.2006, 18:56
    #34122162
SnowMan2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
В таком случае может помочь отладчик. Надо поставить точку прерывания на цикл while, запустить программу и посмотреть, чему равно с при нажатии ESC.
...
Рейтинг: 0 / 0
12.11.2006, 18:59
    #34122165
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
Конец файла - вовсе не Esc, а Ctrl-Z.
...
Рейтинг: 0 / 0
12.11.2006, 19:07
    #34122175
tehnix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
А как сделать чтобы было ESC, тогда. И почему Ctrl+Break, если код клавиши ESC равен 27, что я и указал в #define eof 27 ?????
...
Рейтинг: 0 / 0
12.11.2006, 20:25
    #34122287
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
Никак. Дефайнов не надо никаких делать. Esc - это не символ, а клавиша. Не будет у тебя в консольном вводе никогда введен Esc, это не символ, это клавиша. Символа, ей соответствующего, нету. Если и есть называющийся так же символ, то это только совпадение. Операционка не будет транслировать Esc в какой-то символ.

А вот ввод Ctrl-Z операционка и библиотека CRT воспримет правильно и возвратит в getchar() результат -1, что значит "конец потока данных" и на что имеется уже в CRT соответствующий define.
...
Рейтинг: 0 / 0
12.11.2006, 20:30
    #34122294
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
while ( (c=getchar()) != EOF )
{
printf("The character is: '%c' %d %X\n", c, c, c );
}
...
Рейтинг: 0 / 0
12.11.2006, 21:42
    #34122346
tehnix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
Спасибо, все понятно!
...
Рейтинг: 0 / 0
12.11.2006, 23:17
    #34122412
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
AklinBC аццтой

аффтопитезь
И чем он отстой ?
такой же С++ :)
...
Рейтинг: 0 / 0
13.11.2006, 08:57
    #34122721
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
JibSkeart

"Вы невнимательны, воспользуйтесь поизком" (с) не помню кто.
...
Рейтинг: 0 / 0
13.11.2006, 09:04
    #34122735
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку в этом деле Borland C++ Rulez
Aklin JibSkeart

"Вы невнимательны, воспользуйтесь поизком" (с) не помню кто.

Понил , понил ... :)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите новичку в этом деле Borland C++ Rulez / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]