История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Топ:
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2020-05-08 | 161 |
5.00
из
|
Заказать работу |
|
|
На рис. 12 приведен перечень функций ввода/вывода символов и строк из стандартной библиотеки ввода/вывода.
Прототип | Описание функции |
int getchar (void) | Вводит следующий символ со стандартного устройства ввода и возвращает его в формате целого |
char *gets (char *s) | Вводит символы со стандартного устройства ввода в массив s до тех пор, пока не встретит символ новой строки или индикатор конца файла. После этого к массиву добавляется ограничивающий символ NULL. |
int putchar (int c) | Печать символа, хранящегося в с. |
int puts (const char *s) | Печать строки s с последующим символом новая строка |
int sprintf (char *s, const char *format,...) | Эквивалент функции printf за исключением того, что результат вывода запоминается в массиве s, а не отображается на экране |
int sscanf (char *s, const char *format,...) | Эквивалент функции scanf за исключением того, что ввод осуществляется из массива s, а не с клавиатуры |
Рис. 12. Символьные и строковые функции стандартной библиотеки ввода/вывода
Программа, приведенная на рис. 13, использует функции gets и putchar для чтения строки текста со стандартного входного устройства (клавиатуры) и рекурсивно выводит символы строки в обратном порядке. Функция gets читает символы со стандартного входного устройства и передает их своему аргументу — массиву типа char — до тех пор, пока не встретит символ новой строки или индикатор конца файла. Символ NULL ('\0') добавляется в массив после окончания считывания. Функция putchar печатает свой аргумент — символ. Для печати строки текста в обратном порядке программа рис. 13 вызывает рекурсивную функцию reverse. Если первый символ массива, полученный функцией reverse, является нулевым символом '\0', то следует возврат из функции. В противном случае следует вызов reverse, и ее аргумент указывает на адрес «нового» массива, который начинается с элемента s[l]. Когда рекурсивный вызов завершается, функция putchar выводит элемент s[0]. Порядок следования двух операторов в части else структуры if приводит к тому, что функция reverse переходит к граничному символу NULL строки до вывода символа на печать. Как только рекурсивный вызов завершается, символы выводятся в обратном порядке.
|
/* Применение gets and putchar */
#include <stdio.h>
main ().. {
char sentence[80]; void reverse(char *);
printf("Enter a line of text:\n");
gets (sentence);
printf(" \nThe line printed backwards is:\n");
reverse(sentence);
return 0;
}
void reverse (char *s) {
if (s[0] == '\0')
return;
else
{reverse (&s [1]);
putchar (s [0]);
}}
Вывод на экран
Enter a line of text:
Characters and Strings
The line printed backwards is:
sgnirtS dna sretcarahC
Enter a line of text:
able was I ere I saw elba
The line printed backwards is:
able was I ere I saw elba
Рис. 13. Применение gets and putchar
Программа, приведенная на рис. 14, использует функции getchar и puts для чтения символов со стандартного входного устройства в символьный массив sentence и выводит массив символов как строку. Функция getchar читает символ со стандартного входного устройства и возвращает его как целое значение. Функция puts получает в качестве аргумента строку (char *) и выводит ее с последующим символом новой строки (‘\n')
/* Применение getchar и puts */
#include <stdio.h>
main ()
{
char c, sentence[80];
int i = 0;
puts ("Enter line of text:");
while ((с = getchar ())!= v\n')
sentence[i++] = c;
sentence [i] = ' \0'; /* вставьте символ NULL в конец строки */
puts("\nThe line entered was:");
puts (sentence);
return 0;
}
Вывод на экран
Enter line of text: This is a test.
The line entered was: This is a test.
Рис. 14. Применение getchar and puts
Программа прекращает ввод символов, когда getchar считывает введенный пользователем символ новой строки. В массив sentence добавляется символ NULL, чтобы массив мог восприниматься как строка. Функция puts выводит строку, содержащуюся в sentence.
Программа, приведенная на рис. 15, использует функцию sprintf для печати форматированных данных в массив s — массив символов. Программа вводит значения типа int и float, которые форматируются и выводятся в массив s. Массив s является первым аргументом функции sprintf.
|
/* Применение sprintf */
#include <stdio.h>
main () {
char s[80];
int x;
float y;
printf("Enter an integer and float:\n");
scanf("%d%f", &x, &y);
sprintf(s, "Integer:%6d\nFloat:%8.2f", x, y);
printf("%s\n%s\n", "The formatted output stored in array s:", s);
return 0; }
Вывод на экран
Enter an integer and float:
298 87.375
The formatted output stored in array s:
Integer: 298
Float: 87.38
Рис. 15. Применение sprintf
Программа, приведенная на рис. 16, демонстрирует функцию sscanf для чтения форматированных данных из массива символов s. Программа считывает значения типа int и float из массива s и запоминает величины соответственно в переменных х и у. Величины х и у выводятся на печать. Массив s является первым аргументом функции sscanf.
/* Применение sscanf */
# include < stdio. h >
main () {
char s[] = "31298 87.375";
int x;
float y;
sscanf (s, "%d%f", &x, &y);
printf("%s\n%s%6d\n%s%8.3f\n",
"The values stored in character array s are:", "Integer:", x, "Float:", y);
return 0; }
Вывод на экран
The values stored in character array s are:
Integer: 31298
Float: 87.375
Рис. 16. Применение sscanf
|
|
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!