Разный вывод (printf) табуляции (\t) ветвлений (if-if-if-else) и (if-elseif-elseif-else) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Почему результатом выполнения

нижеследующего

кода при вводе, например: "

qwe[кнопка_tab]qwe

" консоль (linux) отображает

слитно

: "

qwe\tqwe

"?
#include <stdio.h>
 
int main(){
 
    int ch = 0;
 
    while ((ch=getchar())!=EOF){
 
        if (ch == '\t') printf("\\t");
        else if (ch == '\b') printf("\\b");
        else if (ch == '\\') printf("");
        else putchar(ch);
    }
}
А результатом

нижеследующего

получается

раздельный

вывод в консоли "

qwe\t qwe

" -
#include <stdio.h>
 
int main(){
 
    int ch = 0;
 
    while ((ch=getchar())!=EOF){
 
        if (ch == '\t') printf("\\t");
        if (ch == '\b') printf("\\b");
        if (ch == '\\') printf("");
        else putchar(ch); printf("\a");
    }
}
P.S.: Только что начал обучение, читаю книгу "Язык программирования Си" Брайан Керниган, Деннис Ритчи Там задание: Упражнение 1.10. Напишите программу, копирующую вводимые символы в выходной поток с заменой символа табуляции на \t, символа забоя на \b и каждой обратной наклонной черты на \\. Это сделает видимыми все символы табуляции и забоя. Объясните пожалуйста на пальцах что в какой строчке "идет не так".

Решение задачи: «Разный вывод (printf) табуляции (\t) ветвлений (if-if-if-else) и (if-elseif-elseif-else)»

textual
Листинг программы
    while ((ch=getchar())!=EOF){
 
        if (ch == '\t') printf("\\t");
        if (ch == 'о') printf("оооооо");
        else putchar(ch);
    }

Объяснение кода листинга программы

  1. Вводимые данные считываются с помощью функции getchar() в переменную ch до тех пор, пока не достигнут конец файла (EOF).
  2. Если значение переменной ch равно табуляции ('\t'), то выводится соответствующий символ '\t'.
  3. Если значение переменной ch равно 'о', то выводится символ 'оооооо'.
  4. В противном случае значение переменной ch выводится с помощью функции putchar().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.667 из 5