Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2009, 15:08   #1
grafek3d
Новичок
Джуниор
 
Регистрация: 02.11.2009
Сообщений: 2
По умолчанию Нужна помощь c ascII таблицей

Упражнение 1.10 из кернигана ритчи звучит
Напишите программу для копирования входного потока в выходной с заменой знаков табуляции на \t, символов возврата назад (Backspace) на \b, а обратных косых черт - на \\. Это сделает табуляции и символы возврата легко читаемыми в потоке.

Значит пробелема в том, что я не могу проверить бакспейс, остальное работает.

Слышал что можно что то нажать на клаве, чтобы сэмулировать бакспейс.
Выслушаю другие варианты.

Привожу текст программы:
Код:
#include <stdio.h>

main()
{
int c;
 
while((c = getchar()) != EOF) {
      if (с =='    ')
            printf(" \\t ");
      if (с ==' \\b ')
            printf(" \\b ");
      if (с ==' \\ ')
            printf(" \\\\ ");
      else
            putchar(c);
      }
}

Последний раз редактировалось grafek3d; 02.11.2009 в 15:10.
grafek3d вне форума Ответить с цитированием
Старый 02.11.2009, 15:17   #2
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

чтобы сэмулировать бэкспейс нужно на клаве нажать бэкспейс. А вообще аски код бэка = 8. Так что ord либо chr, либо... Что там в С для для преобразования символов в аски коды?
danekne вне форума Ответить с цитированием
Старый 02.11.2009, 15:24   #3
grafek3d
Новичок
Джуниор
 
Регистрация: 02.11.2009
Сообщений: 2
По умолчанию

так я не могу проверить
путем нажатия на бакспейс, потому что прога
выполняет цикл только после нажатия на энтер

если я нажэму бакспейс а потом энтер, то просто затрется символ
и не будет выполняться программа

как это обойти
я под qnx программировать учусь на простом С

Может как то можно сделать что бы от каждого нажатия на бакспейс программа сама выдавала значения без энтера?
grafek3d вне форума Ответить с цитированием
Старый 02.11.2009, 15:40   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Можно использовать функцию getch() из conio.h, она не требует нажатия ввода для получения символа из потока.
Код:
 if (с ==' \\b ')
// Нужно заменить на 
if( c == '\b' ) // С одним \ и без пробелов. С остальными символами также
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12
Нужна помощь zinger Помощь студентам 2 16.05.2008 10:55
Очень нужна помощь в переводе символов в ASCII и обратно !!!~VivO~!!! Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 05.05.2008 10:47