Особенности неформатированного ввода строки
Ввод строковых констант выполняется с помощью функции gets(аргумент),
где аргумент – адрес переменной, которая должна быть объявлена в виде массива или указателя. Вводятся все символы до нажатия клавиши Enter , в том числе и пробелы.
Вывод строковых переменных и констант выполняется с помощью функции puts(аргумент), где аргумент – переменная, объявленная в виде массива или указателя, или строковая константа, заключенная в двойные кавычки. На экран выводятся все символы до символа ‘\0’, в том числе и пробелы.
Например:
#include <stdio.h>
void main ()
{ char s[10];
puts(“Введите строку не больше 10 символов”);
gets(s);
puts(“Введенная строка”);
puts(s); }
На экране выведется:
Введите строку не больше 10 символов
abcdefg //вводимая строка
Введенная строка
abcdefg
Ввод-вывод данных в языке С++
В языке С++ в заголовочном файле iostream.h имеются операции включения данных в поток cin и извлечения данных из потока cout .
Вывод на экран осуществляется с помощью записи cout<<аргумент , где аргумент – это переменная, константа или любое унарное выражение, значение которой выводится на экран.
Ввод данных с клавиатуры осуществляется с помощью записи – cin>>аргумент , где аргумент – это имена переменных, куда должны вводиться числа с клавиатуры.
Эти операции реализованы так, что они автоматически распознают тип переменной или константы, расположенной справа. Например:
int a=5;
cout<<a; // вывод на экран цифры 5
cin>>а; // ввод с клавиатуры значения переменной а
float pi=3.14;
int c=30;
cout<<pi; // вывод на экран числа 3.14
cout<<с; // вывод на экран числа 30
Возможна последовательная запись операций (“цепочки”):
cout<<”pi=”<<pi; // вывод на экран pi=3.14
char ch1,ch2; double d1,d2;
cin>>ch1>>d1>>d2>>ch2;
В этом случае значения переменных можно вводить через пробелы (один или несколько) либо нажатием клавиши Enter .
При вводе целых чисел допустимы все формы записи: десятичная, восьмеричная, шестнадцатеричная. При первом символе 0 число будет воспринято, как восьмеричное, при символах 0х – как шестнадцатеричное. При вводе вещественных чисел также допустимы все формы записи, т.е. с точкой либо в экспоненциальной форме.
Для организации ввода-вывода с помощью рассмотренных операций предусмотрено множество флагов и манипуляторов, которыми можно задавать выравнивание, точность, ширину, систему счисления. Некоторые их них: left , right , dec , oct , hex , showpoint , scientific , endl , flush .
int A;
cout<<”Введите целое число:”<<flush<<endl;
cin>>A;
cout<<”Число A в 10CC=”<<A<<” в 8CC=”<<oct<<A<<” в 16CC=”<<hex<<A<<endl;
//printf(”Число A в 10CC=%d в 8CC=%o в 16CC=%x\n”,A,A,A,A);