Страница 1 из 1

Помогите))с мне)

Добавлено: 17 сен 2009, 14:50
mdems
Парни привет)))) слушайте помогите если понимаете.))
представьте себе консольное приложение в Visual Studio
c++. пытаюсь написать программу которая выводит "символы за место кнопок" как бы если нажимаю на Tab \t табуляция что бы он писал Tab а не просто прыгал ну типо в этом духе..)

вот код) только он ничего не выводит:

Код: Выделить всё

#include <stdio.h>


main()
{
  int c,tab, zab, nak;
	tab = zab = nak = 0;
	c=0;
while(1)
	{	
	while(c = getchar() == '\t')
		{
	     printf("%d tab ", c);
	     tab++;
		}
	while (c = getchar() == '\b')
		{
		printf("%d backspace ",c);
         zab++;
		}
	while (c = getchar() == '\\')
		{
		printf("%d \\ ", c);
		 nak++;
		}
	    return 1;
	}
	return 0;
}

Re: Помогите))с мне)

Добавлено: 17 сен 2009, 15:30
Romeo
Ты не ту функцию вызываешь. Функция getchar ждёт нажатия Enter, тебе же нужна функция, считывающая клавиши в silent mode. Да и с циклами у тебя там бардак сплошной творится. Такое ощущение, что ты их тулил сам не зная зачем. Вот как программа должна выглядеть:

Код: Выделить всё

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

main()
{
    int c,tab, zab, nak;
	c = tab = zab = nak = 0;
	
	printf("Press Esc to exit\n");

	do
    {
		c = getch();
		switch (c)
		{
			case '\t' : printf("%d tab ", c); tab++; break;
			case '\b' : printf("%d backspace ", c); zab++; break;
			case '\\' : printf("%d \\ ", c); nak++; break;
		}
    }
	while (c != 27);

    return 0;
}

Re: Помогите))с мне)

Добавлено: 17 сен 2009, 15:33
mdems
спасибо тебе))) :)
а зачем ты подключал библиотеку conio.h расскажи
да ещё объясни почему внизу цикл while !=27? что он делает

Re: Помогите))с мне)

Добавлено: 17 сен 2009, 20:09
_SG
описание фукции getch() находится в <conio.h>
ммм.... цикл не внизу... это и есть программа! читается клавиатура до тех пор пока не нажата клавиша ECS.

Re: Помогите))с мне)

Добавлено: 18 сен 2009, 09:45
mdems
[quote="_SG"]описание фукции getch() находится в <conio.h>
оо спасибо тебе теперь все понятно)) :)
QUOTE]

Re: Помогите))с мне)

Добавлено: 18 сен 2009, 10:38
Romeo
&quot писал(а):да ещё объясни почему внизу цикл while !=27? что он делает
Это не цикл с предусловием while, это цикл с постусловием do while. Между do и while расположено его тело.
&quot писал(а):27
Я ж специально написал вот эту строку, чтобы всё было понятно :)

Код: Выделить всё

printf("Press Esc to exit\n");

Re: Помогите))с мне)

Добавлено: 21 сен 2009, 09:34
mdems
спаасибо тебе ромео))