Книга: Язык Си - руководство для начинающих

Резюме: как переключать ввод и вывод

Резюме: как переключать ввод и вывод

     На большинстве машин, в которых реализован компилятор с языка Си, операцию переключения можно использовать либо для всех программ, благодаря поддержке операционной системы, либо только для программ, написанных на Си, благодаря наличию компилятора с этого языка. Ниже prog будет именем выполняемой программы, a file1 и file2 - именами файлов.

Переключение вывода в файл: >

prog  >file1

Переключение ввода в файл: <

prog  <file2

Комбинирванное переключение:

prog  <file2  >filel или prog  >filel  <file2

В обеих формах записи файл с именем file2 используется для ввода данных, а файл с именем filel - для вывода.

Расположение пробелов

     Некоторые системы (в особенности компиляторы с языка Си) требуют наличия пробела слева от знака операции переключения и его отсутствия справа от этого знака. Другие системы (ОС UNIX например) допускают любое число пробелов (в том числе и ни одного) слева и справа от знака данной операции.

Графический пример

     Мы можем воспользоваться функциями getchar( ) и putchar( ) для изображения геометрических фигур при помощи символов. Ниже приведена программа, которая это делает. Она читает символ, а затем печатает его некоторое число раз зависящее от кода ASCII этого символа. Кроме того, она печатает на каждой строке требуемое число пробелов, чтобы текст оказывался в центре строки.

/* фигуры */

/* изображает симметричную фигуру из символов */

#include

 main( )

{

int ch; /* переменная для ввода символа */

int index;

int chnum;

while ((ch=getchar( )) != 'n' )

{

chnum - ch %26; /* получение числа от 0 до 25 */

index = 0;

while (index++ <(30 - chnum))

putchar( ); /* печать пробелов сдвига к центру */

index = 0;

while (index++ <(2* chnum + 1))

putchar (ch); /* повторная печать символа */

putchar( n );

 }

 }

     Единственный новый технический прием здесь - это использование подвыражений таких, как (30-chnum) при записи условии в циклах while. Один цикл while управляет печатью необходимого числа начальных пробелов в каждой строке, а второй - выводом символов на печать. Результат работы программы зависит от данных, которые вводятся. Если, например, вы введете. 

What is up?

то на экране появится следующее

wwwwwwwwwwwwwwwwwww

h

ааааааааааааааааааааааааааааааааааааааа

ttttttttttttttttttttttttt iiiiiiiiiiiiiiiiiiiiiiiiiii

sssssssssssssssssssssss

uuuuuuuuuuuuuuuuuuuuuuuuuuu ppppppppppppppppp

??????????????????????????

     Что вы можете делать с помощью этой программы? Можете просто игнорировать ее, или же (переписав ее по-другому) изменять вид фигур которые она выводит на печать, либо наконец искать такие комбинации входных символов, что в результате на экране будут появляться привлекательные фигуры например при вводе такой последовательности:

h i j k l m n o p q r s t u i i i

Результат работы программы будет выглядеть так

h i i i j j j j j

k k k k k k k l l l l  l l l l l

m m m m m m m m m m m  n n n n n n n n n n n n n

o o o o o o o o o o o o o o o p p p p p p  p p p p p p p p p p p

q q q q q q q q q q q q q q q q q q q г г г г г г г г г г г г  г г г г г г г  г г s s s s s s s s s s s s s s s s s s s s s s s

t t t t t t t t t t t t t t t t t t t t t t t t t

u u u u u u u u u u u u u u u u u u u u u u u u u u u 111

l l l

l l l

Оглавление книги


Генерация: 1.914. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз