Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_по_программированию.doc
Скачиваний:
80
Добавлен:
02.04.2015
Размер:
4.77 Mб
Скачать

Методика ввода числовых данных с использованием функцииgets( )

Функции преобразования символьной строки в числовой формат позволяют отказаться от использования в программе функции scanf( ).

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

Например, фрагмент программы

char buf[20];

intd;

floatr;

printf(“Введите значение переменной d:”)

gets(buf);

d=atoi(buf);

printf(“Введите значение переменной r:”)

gets( buf );

r = atof( buf );

позволяет последовательно ввести значения целой переменной dи вещественной переменнойr, посредством символьной строкиbuf, необходимой для ввода и промежуточного хранения вводимых значений в формате символьной строки.

Вывод строки

Существует два способа вывода символьной строки.

  • использование многоцелевой функции printf( ) илиfprintf( );

  • использование функции puts( ) илиfputs( ).

Рассмотрим каждый из способов.

Вывод строки функциями printf( ) и fprintf( )

Функция printf( ) (fprintf( )) позволяет выводить различные типы данных из оперативной памяти на экран дисплея (на принтер или в файл), в том числе и символьную строку.

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

  • Внимание ! Спецификатор %sтребует в качестве соответствующего аргумента указания адреса выводимой строки.

Для вывода других типов переменных функция printf( ) использует не адреса, а значения. Использование адреса при выводе строки обусловлено тем, что функция выводит строку посимвольно. Функция принимает значение адреса и выводит все символы, начиная с символа в ячейке с этим адресом и заканчивая символом находящимся перед ‘\0’.

Если требуется вывести часть строки, то в спецификаторе необходимо указать количество выводимых символов (например, %10s).

Функция printf( ) не выводит каждую символьную строку с новой строки. Для перевода строки необходимо в управляющей строке указать символ новой строки ‘\n’.

Например,

char*name= “ЭВМ и вычислительные системы”;

intlec= 54,pr= 72,lab= 72;

printf( “\nНагрузка по курсу \“%s\”: \n- лекции %dчас;\n”

“ - практические занятия %dчас;\n”

“ - лабораторные работы %dчас.\n”,name,lec,pr,lab);

Результаты работы программы:

Нагрузка по курсу "ЭВМ и вычислительные системы":

- лекции 54 час;

- практические занятия 72 час;

- лабораторные работы 72 час.

В качестве аргументов функции printf( ) использованы: управляющая строка, указательname, переменныеlec,pr,lab. Таким образом, для вывода строки используется её начальный адрес, а для вывода целых переменных – их значения.

Функция fprintf( ) аналогична функцииprintf( ) за исключением того, что позволяет выводить данные не только на экран, но и на принтер или в файл.

Вывод строки функциямиputs( ) и fputs( )

Функция puts( ) (fputs( )) позволяет выводить символьную строку из оперативной памяти на экран дисплея (на принтер или в файл).

Прототипы функций описаны в заголовочном файле stdio.hи имеют следующую структуру:

int puts(char *s);

int fputs(char *s, FILE *fp);

Аргументом функции puts( ) является указатель на выводимую символьную строку.

Аргументами функции fputs( ) являются указатель на выводимую символьную строку и указатель на поток вывода. В качестве второго фактического параметра используются стандартные указатели на поток:

  • stdout, предписывающий вывод на экран;

  • stdprn, предписывающий вывод на принтер;

или указатель на поток, связанный с файлом, в который осуществляется вывод.

Функция puts( ) копирует символьную строку, на которую указывает формальный параметр – указательs, на экран дисплея, добавляя в конце символ новой строки ‘\n’. Функция принимает значение адреса строки и выводит все символы, начиная с этого адреса до символа ‘\0’.

Добавление символа ‘\n’ предписывает перевод курсора на следующую строку экрана после вывода строки. Следовательно, функция puts( ) автоматически переводит строку после вывода.

При успешном завершении функция возвращает неотрицательное значение. В противном случае значение EOF(конец файла).

Функция fputs( ) аналогична функцииputs( ) за исключением того, что позволяет выводить строку не только на экран, но и на принтер или в файл. Ещё одно отличие состоит в том, что функцияfputs( ) не добавляет в конец выводимой строки символ ‘\n’.

  • Внимание ! Функция fputs( ) не переводит строку после вывода.