Сделать перенос строки при вводе определенного символа - C (СИ)

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

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

Собственно, проблема. Нужно чтобы при вводе определённого количества символов пользователем происходил перенос на следующую строку.

Решение задачи: «Сделать перенос строки при вводе определенного символа»

textual
Листинг программы
#include <stdio.h>
#include <termios.h>
static struct termios old, new;
void initTermios(int echo) 
{
  tcgetattr(0, &old); 
  new = old; 
  new.c_lflag &= ~ICANON; 
  new.c_lflag &= echo ? ECHO : ~ECHO; 
  tcsetattr(0, TCSANOW, &new); 
}
void resetTermios(void) 
{
  tcsetattr(0, TCSANOW, &old);
}
char getch_(int echo) 
{
  char ch;
  initTermios(echo);
  ch = getchar();
  printf("%c",ch);
  resetTermios();
  return ch;
}
char getch(void) 
{
  return getch_(0);
}
char getche(void) 
{
  return getch_(1);
}
void func(int num) {
    int i;
    char ch;
    i=0;
    do {
        ch=getch();
        i++;
        if(i==num) {
            printf("\n");
            i=0;
        }
    } while (ch!='\n');
}
int main(void) {
    func(5);
    return 0;
}

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

  1. Переменные old и new объявлены как структура termios.
  2. Функция initTermios инициализирует терминал, устанавливая его параметры.
  3. Функция resetTermios восстанавливает исходные параметры терминала.
  4. Функция getch получает символ от пользователя, используя измененные параметры терминала.
  5. Функция getche также получает символ от пользователя, но без изменения параметров терминала.
  6. В функции func пользователь вводит символы до тех пор, пока не введет символ новой строки (\n).
  7. Если количество введенных символов равно num, то выводится символ новой строки.
  8. В функции main вызывается функция func с аргументом 5, что означает, что будет введено 5 символов, после чего будет выведена новая строка.
  9. Программа завершается возвратом значения 0.

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


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

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

8   голосов , оценка 3.875 из 5
Похожие ответы