Как остановить поток данных - C (СИ)
Формулировка задачи:
Всем привет!
Нужно записать поток данных введенных с клавиатуры в массив.
Получилось так:
Подскажите пожалуйста как остановить поток данных путем нажатия клавиши ENTER?
Нужно реализовать с помощью scanf().
Листинг программы
- #include <stdio.h>
- #define SIZE 255
- int main(void)
- {
- char ch[SIZE];
- int x;
- printf("Введите фразу: ");
- for (x=0; x < SIZE; ++x)
- scanf("%c", &ch[x]);
- printf("\n");
- printf("Вы ввели фразу: ");
- for (x=0; x < SIZE; ++x)
- printf("%c", ch[x]);
- return 0;
- }
Решение задачи: «Как остановить поток данных»
textual
Листинг программы
- #include <stdio.h>
- #include <locale.h>
- #define SIZE 255
- int main()
- {
- char ch[SIZE];
- int x;
- setlocale(LC_ALL, "Russian");
- printf("Введите фразу: ");
- x = 0;
- while(x < SIZE-1 && scanf("%c", &ch[x]) && ch[x]!='\n')
- {
- ++x;
- }
- ch[x] = '\0';
- printf("\n");
- printf("Вы ввели фразу: ");
- for (x=0; ch[x]!='\0'; ++x)
- {
- printf("%c", ch[x]);
- }
- getchar();
- return 0;
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
<stdio.h>
и<locale.h>
. - Определение константы
SIZE
равной 255. - Объявление переменных:
ch
типаchar
иx
типаint
. - Установка русской локали с помощью функции
setlocale()
. - Вывод сообщения с просьбой ввести фразу.
- Инициализация переменной
x
равной 0. - Запуск цикла, который будет выполняться до тех пор, пока:
x
меньшеSIZE-1
(для избежания выхода за границы массива).scanf()
успешно считывает символ (для избежания ошибок ввода).- считанный символ не является символом новой строки ('\n').
- Внутри цикла увеличиваем значение
x
на 1. - После выхода из цикла добавляем в конец строки символ конца строки ('\0').
- Вывод сообщения и копирование введенной строки в выходной поток.
- Для вывода каждого символа строки используется цикл, который будет выполняться до тех пор, пока:
ch[x]
не равно\0
(для избежания выхода за границы массива).
- Внутри цикла выводим текущий символ.
- В конце программы добавлено
getchar()
, чтобы программа не закрылась сразу после вывода введенной строки. - Конец программы:
return 0
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д