с функций gets, осуществляющей ввод
Зато с функций 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").
Содержание Назад Вперед