Сделать перенос строки при вводе определенного символа - 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;
- }
Объяснение кода листинга программы
- Переменные
old
иnew
объявлены как структураtermios
. - Функция
initTermios
инициализирует терминал, устанавливая его параметры. - Функция
resetTermios
восстанавливает исходные параметры терминала. - Функция
getch
получает символ от пользователя, используя измененные параметры терминала. - Функция
getche
также получает символ от пользователя, но без изменения параметров терминала. - В функции
func
пользователь вводит символы до тех пор, пока не введет символ новой строки (\n
). - Если количество введенных символов равно
num
, то выводится символ новой строки. - В функции
main
вызывается функцияfunc
с аргументом5
, что означает, что будет введено 5 символов, после чего будет выведена новая строка. - Программа завершается возвратом значения
0
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д