
- •Ввод-вывод данных
- •Ввод-вывод данных на консоль. Библиотека stdio
- •Стандартные потоки библиотеки stdio
- •Чтение и запись символов
- •Чтение и запись строк
- •Обзор консольных функций ввода-вывода
- •Форматированный ввод-вывод данных
- •Команды форматирования функции printf.
- •Команды форматирования функции scanf().
- •Сравнительная характеристика консольных функций ввода-вывода
- •Функции ввода-вывода библиотеки iostream
- •Форматирование ввода-вывода
Чтение и запись строк
Консольные функции gets() и puts() позволяют считывать и записывать строки.
Функция gets() считывает строку символов с клавиатуры, и размещает её по адресу, указанному в аргументе, eё прототип находится в библиотеке stdio. Поскольку функция работает с буфером, на время её работы выполнение программы приостанавливается, она ожидает ввода текста с клавиатуры, признаком окончания ввода является клавиша ENTER, после чего строка, введенная пользователем, присваивается переменной в качестве значения.
Следует обратить внимание на одну важную особенность функции gets(), несмотря на то, что нажата клавиша ENTER, в конец строки ставится не символ перехода на новую строку, а нулевой символ '\0'- признак конца строки.
При наборе строки допускается её редактирование, ошибки можно исправить с помощью клавиши BACKSPACE.
В качестве аргумента следует указывать массив символов, в который и будут записаны символы, введенные пользователем.
Пример: Ввести строку текста в массив, вывести строку на экран.
#include <stdio.h>
void main()
{
char buffer[125];
printf("Наберите строку:");
gets(buffer);
printf("Была введена строка: %s\n", buffer);
}
Функция gets() будет рассматривать символы, введенные с клавиатуры, как значение строковой переменной с именем buffer. Следует помнить, что один элемент необходим для нулевого символа '\0', поэтому указывайте длину массива на единицу больше максимально возможной строки. Например, если вы хотите ввести в переменную buffer строку, состоящую из 125 символов, то определяйте массив:
char buffer[126];
Функция puts() выводит на экран строку символов и переводит курсор на следующую строку, её eё прототип находится в библиотеке stdio. Если при выводе возникла ошибка, то функция возвращает константу EOF.
В качестве параметра могут выступать:
Строковый литерал;
Строковая константа;
Строковая переменная.
Хорошо известное приветствие можно записать с помощью функции puts следующим образом:
puts("Hellow world!!!");// это строковый литерал
Пример: Вывести фразу из нескольких строк на экран дисплея.
#define str1 "Добро пожаловать "
void main()
{
char str2[]="в мир программирования !";
puts(str1); // строковая константа
puts(str2); // строковая переменная:
}
Отметим, что литерал — это конкретный набор символов, который вводится непосредственно в инструкции языка С вместо имени константы или переменной.
Обзор консольных функций ввода-вывода
Сведения об основных функциях ввода вывода приведены в таблице 11.1.
Таблица 11.1.
Функция |
Операция |
getchar () |
Считывает символ с клавиатуры, выводит его на экран, ожидает перехода на новую строку |
getche() |
Считывает символ с клавиатуры и выводит его на экран, не ожидает перехода на новую строку. |
getch() |
Считывает символ с клавиатуры и не выводит его на экран, не ожидает перехода на новую строку. |
putchar() |
Выводит символ на экран. |
gets() |
Считывает строку с клавиатуры, ожидает перехода на новую строку. |
puts() |
Выводит строку на экран и переводит курсор на следующую строку. |