Практика программирования (Бейсик, Си, Паскаль)


Ввод и вывод текстовой информации - часть 3


Зато с функций gets, осуществляющей ввод строки, у вас никаких проблем не возникнет:

gets (s);

Вы можете набирать любые предложения, содержащие любое количество пробелов, и все они будут введены в строку s. Однако длина вводимой строки ограничена емкостью буфера (128 байт).

Дополнительные возможности по вводу текстовых данных связаны с использованием потоков:

#include <iostream.h>

char c1, s1[80];

cin >> c1;

cin >> s1;

С выводом символьных и строковых значений все обстоит гораздо проще. В Паскале и QBasic достаточно в списке выводимых значений указать данные соответствующего типа:

PRINT А$,"Вася"

или

var

cl:char;

si:string;

writeln (c1, s1, .'Вася') ;

Форматный вывод в Си при помощи функции printf использует указанные выше спецификаторы, однако константные текстовые данные, которыми перемежаются выводимые значения, здесь располагаются между спецификаторами формата:

printf("%с Вася %s",c1,s1);

Вывод отдельного символа или одиночной строки в Си можно выполнить и c помощью

putchar (c1)

и

puts (s1)

Выводимое значение обычно располагается на экране, начиная с текущей позиции курсора. Если необходимо разместить текст в заранее предусмотренном месте, следует прибегнуть к одной из служебных процедур предварительного перемещения курсора в заданную позицию:

LOCATE col, row 'Так это выглядит на QBasicgotoxy(col,row);

// А так делается на Си и Паскале

Параметр col задает номер колонки в диапазоне от 1 до 80, а второй аргумент (row) определяет номер строки в диапазоне от 1 до 25.

Еще один способ управления по размещению текста связан с заданием ширины поля, отведенного под выводимое значение. Отображаемый текст, при этом прижимается к правой границе поля. Ширина поля в Паскале задается числовым выражением, которое записывается в операторе вывода через" двоеточие вслед за выводимым текстовым значением:

writelnt'Вася':10,c1:k+5,s1:7);

В QBasic для указания ширины поля используется оператор PRINT USING:

PRINT USING "##### ### #######";"Вася",А$,В$

В Си ширина поля включается в спецификатор формата ("%3с %10s"). Однако здесь имеется дополнительная возможность указать, что выводимое значение требуется прижать к левой границе выделенного поля ("%-Зс" %-10s").




- Начало -  - Назад -  - Вперед -