Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Чтение строк



Кроме отображения строк, большинству программ нужно также вводить символы с клавиатуры, дисковых файлов и других источников. Простейшим способом чтения строки со стандартного устройства ввода является вызов функции gets(). Как объяснялось в главе 1, поскольку нет способа сообщить функции gets(), сколько символов нужно прочитать, лучше всего предоставить ей строковую переменную, по размеру сравнимую с буфером ввода DOS (обычно берется размер 128 байт):

char buffer[128];

gets(buffer);

При выполнении чтения более коротких строк обычно используется функция gets(), как показано выше, а затем выполняется вызов строковой функции для копирования нескольких или всех символов из строки buffer в другую переменную.

Если вам не нужно компилировать свои программы другими компиляторами ANSI С, включите файл CONIO.H и для ввода строки вызовите функцию cgets(). Функция cgets() требует специально подготовленно­го строкового аргумента. Объявите строку как обычно, но к ее размеру прибавьте число 3. Например, объяви­те 40-символьную строку следующим образом:

char string[43];

Функция cgets() ожидает, что первый байт строки будет равен ее максимальной длине. Поэтому перед вы­зовом функции cgets() задайте эту длину с помощью следующего оператора:

string[0]=4;


Рис. 6.3. Функция cgets() требует специально подготовленной строки

Эта длина учитывает один байт для завершающего нуля, добавляемого функцией cgets() к возвращаемому результату. Те­перь вы можете вызвать функцию следующим образом:

cgets(string);

После того как пользователь программы нажмет <Enter>, функция cgets() запомнит в байте string[1] реальное число вве­денных символов. Первый значащий символ (если таковой бу­дет) попадет в элемент string[2]. Как показано на рис. 6.3, стро­ковая переменная, подготовленная для функции cgets(), имеет три дополнительных байта, включая завершающий нуль. Таким образом, чтобы прочитать 40-символьную строку с помощью функции cgets(), требуется строковая переменная длиной 43 байт. Поскольку первые байты используются для представления максимальной и реальной длины строки, наибольшая строка, которую вы сможете прочитать, используя функцию cgets(), имеет длину 256 байт и может запомнить от 0 до 253 символов.





Дата публикования: 2015-01-23; Прочитано: 199 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...