Добавил:
Лабы/курсовые по программированию (С++/Verilog HDL), Теория и Практика Помехоустойчивого Кодирования Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1сем Дагаев / lectures_3.pdf
Скачиваний:
44
Добавлен:
09.03.2022
Размер:
769.01 Кб
Скачать

строки (который записывается в массив) или символ конца файла. За последним введенным символом добавляется нуль-символ. В случае успешного завершения функция вернет указатель строку str. Если прочитан конец файла, а ни один символ не был введен, то содержимое массива оказывается неизменным, а функция вернет значение NULL. Если во время ввода имела место ошибка, то функция вернет значение NULL, а содержимое массива str оказывается неопределенным. Приведем пример.

#include<stdio.h>

#include<string.h> #define MAXSIZE 81

int main(void)

 

 

{

 

 

char buf[MAXSIZE];

 

 

char* s = NULL;

 

 

fgets(buf, sizeof(buf), stdin);

s = strchr(buf, '\n');/*

Ищем символ ‘\n’ в прочитанной

if(s != NULL)

 

строке */

/*

Запись символа ‘\0’вместо

*s = '\0';

return 0;

 

символа ‘\n’ */

 

 

}

С целью приблизить работу функции fgets() к работе функции gets(), которую она призвана заменить, в рассматриваемом примере добавлен программный код, удаляющий из массива, используемого для ввода строки (buf), символ новой строки (\n). Для этой цели используется функция strchr() и инструкция if.

40.7.Вывод строк

Для ввода строк с клавиатуры можно воспользоваться следующими библиотечными функциями:

printf(),

puts(),

fputs().

Начнем рассмотрение с функции printf().

Функция printf()

Строки могут выводиться с помощью библиотечной функции printf(). Для вывода строкового литерала достаточно поместить его текст в форматной строке вызова рассматриваемой функции. Пусть необходимо вывести стандартное приветствие. Это можно выполнить с помощью

следующего вызова функции printf(): printf(“Hello, world”);

112

В более сложных случаях следует при выводе строк использовать спецификацию типа s. В качестве примера приведем вывод заголовка

таблицы:

printf(“%5s%10s%10s”, “НОМЕР”, “АРГУМЕНТ”, “ФУНКЦИЯ”);

Функция puts()

Объявление функции puts() имеет следующий вид

#include<stdio.h>

int puts(const char* str);

Функция puts() выводит на экран дисплея строку, на которую установлен указатель str. Нуль – символ этой строки преобразуется в символ новой строки, который выводится на экран. Последнее приводит к тому, что после вывода строки str курсор перейдет на начало новой строки экрана.

При успешном выполнении функция puts() возвращает неотрицательное число, а в случае сбоя – значение EOF.

Рекомендуется использовать функцию puts() вместо printf() в тех случаях, когда необходимо вывести отдельное сообщение для пользователя, которое не сопровождается выводом и вводом данных.

Приведем пример применения функции puts().

/* Демонстрация вывода строк с применением функции puts()*/ /* Файл puts.c */

#include<stdio.h> int main(void)

{

msg1

= “Не”;

char*

char*

msg2

= “применяйте”;

char*

msg3

= “функцию”;

char*

msg4

= “gets()”;

char*

msg5

= “в коммерческих”;

char*

msg6

= “приложениях!!!”;

puts(msg1);

 

puts(msg2);

 

puts(msg3);

 

puts(msg4);

 

puts(msg5);

 

puts(msg6);

 

return

0;

 

}

Результат выполнения программы будет иметь следующий вид: Не применяйте функцию

gets()

в коммерческих приложениях!!!

113

Соседние файлы в папке 1сем Дагаев