Сделать перенос строки при вводе определенного символа - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д