Содержание
- 2. Начальные сведения о вводе - выводе Ввод и вывод как в С, так и в С++
- 3. Начальные сведения о вводе - выводе Операция вывода cout Для перехода на новую строку существуют два
- 4. Начальные сведения о вводе - выводе Аналогично операция ввода >> читает значение из стандартного входного потока,
- 5. Начальные сведения о вводе - выводе Если программист забудет включить в программу файл iostream.h, то о
- 6. Элементарный Ввод/Вывод информации В C++ отсутствуют специальные операторы ввода/вывода. Для организации ввода в языке С используется
- 7. Вывод информации на экран дисплея Функции неформатного вывода в stdio имеют описание int_cdecl putchar(const int_c); int_cdecl
- 8. Простейший неформатный ввод данных Функции неформатного ввода в stdio имеют описание int_cdecl qetchar(void); int_cdecl qets(char*_s); где
- 9. Форматированный ввод/ вывод Форматированный ввод/ вывод может быть выполнен благодаря использованию 2-х функций: scanf и printf,
- 10. Форматированный ввод/ вывод [флаг]
- 11. Форматированный ввод/ вывод [ширина]- воздействует только на вывод
- 12. Форматированный ввод/ вывод [.точность]- воздействует только на вывод
- 13. Форматированный ввод/ вывод --->[ F | N | h | l ] -модификатор
- 14. Форматированный ввод/ вывод
- 15. Форматированный ввод/ вывод Вывод строк puts(string) - аналогично printf(“%s\n”,string). Необходимо отметить, что функция scanf прекращает работу,
- 16. Форматированный ввод/ вывод (примеры)
- 17. Простейший ввод /вывод С++ Рассмотренные выше функции ввода вывода относятся к простейшим и реализованы в ранних
- 18. Простейший ввод /вывод С++ В качестве начальных сведений необходимо знать, что пользователю доступны четыре объекта: cin
- 19. Простейший ввод /вывод С++ Операция потокового ввода “>>”- в качестве операнда слева служит объект типа istream
- 20. Простейший ввод /вывод С++ // флаги формата public: enum { skipws = 0x0001, // пропуск пробельного
- 21. Простейший ввод /вывод С++ Эти флаги читаются и устанавливаются функциями элементами flags, setf и unsetf (их
- 22. Использование манипуляторов при вводе /выводе данных Форматированный вывод в С++ обеспечивается путём изменения переменных форматирования при
- 23. Использование манипуляторов при вводе /выводе данных Манипуляторы воспринимают в качестве аргументов ссылку на поток и возвращают
- 24. Использование манипуляторов при вводе /выводе данных Манипулятор setw представляет собой параметризованный манипулятор, объявление которого находится в
- 26. Скачать презентацию
Начальные сведения о вводе - выводе
Ввод и вывод как в
Начальные сведения о вводе - выводе
Ввод и вывод как в
Ввод, идущий с клавиатуры пользователя, называется стандартным входным потоком или стандартным вводом. Он связывается с предопределенным в iostream.h потоком cin. Вывод, направляемый на экран пользователя, называется стандартным выходным потоком или стандартным выводом. Он связывается с предопределенным в iostream.h потоком cout.
Начальные сведения о вводе - выводе
Операция вывода << направляет значение
Начальные сведения о вводе - выводе
Операция вывода << направляет значение
cout << index;
Для перехода на новую строку существуют два способа. Первый - это использовать определенный в iostream.h манипулятор endl. Манипулятор можно выводить в поток и при этом он меняет параметры вывода. Здесь endl вызовет переход на новую строку
cout << endl;
Второй способ - это явно вывести в поток символ новой строки. В С++ он записывается двумя символами : '\n'.
cout << '\n';
Одиночные кавычки ограничивают символ. Такой символ может быть внутри строки символов, например оператор
cout << "Программа на С++\n";
вызовет переход на новую строку после вывода данного сообщения.
В одном операторе вывода можно соединять несколько операций. Например :
cout << "Значение index равно : " << index << endl;
Вывод осуществляется по порядку, считая слева направо.
Начальные сведения о вводе - выводе
Аналогично операция ввода >> читает
Начальные сведения о вводе - выводе
Аналогично операция ввода >> читает
cin >> index;
Такие операции тоже можно соединять в одном операторе. Например,
если в программе встретится следующий оператор :
cin >> i1 >> i2;
то программа будет ждать ввода с клавиатуры двух величин и первую из них поместит в переменную i1, а вторую - в переменную i2. Эти две вводимых величины можно разделять пробелом или табуляцией, а можно каждую из них вводить с новой строки - операция ввода сработает правильно.
Начальные сведения о вводе - выводе
Если программист забудет включить в
Начальные сведения о вводе - выводе
Если программист забудет включить в
Третий предопределенный поток из iostream.h называется cerr и является стандартным потоком сообщений об ошибках. Он тоже связан с экраном пользователя и нужен, чтобы сообщать пользователю об особых ситуациях и ошибках при выполнении программы.
Например
cerr << "Ошибка чтения диска" << endl;
Для облегчения понимания операций << и >> можно представлять их как воронки, через которые информация из программы (например, из переменной
i1) выводится на экран (cout)
cout << i1;
или с клавиатуры (cin) попадает в программу (например в переменную i2)
cin >> i2;
Элементарный Ввод/Вывод информации
В C++ отсутствуют специальные операторы ввода/вывода. Для организации
Элементарный Ввод/Вывод информации
В C++ отсутствуют специальные операторы ввода/вывода. Для организации
Язык С поддерживает форматированный и неформатированный консольный ввод / вывод информации.
Вывод информации на экран дисплея
Функции неформатного вывода в stdio имеют
Вывод информации на экран дисплея
Функции неформатного вывода в stdio имеют
int_cdecl putchar(const int_c);
int_cdecl puts(const char*_s);
Функция putchar() - предназначена для вывода единичного символа в поток stdout. Аргументом функции может быть: символьный литерал; символьная переменная или символьная константа.
Функция puts() копирует строку символов с нулевым окончанием в стандартный выходной поток stdout, причём добавляет в конец символ перехода на новую строку. При успешном завершении функция возвращает ненулевое значение, а в противном случае EOF.
Аргументом функции может быть: строковый литерал; строковая переменная или константа. Примеры:
#define G "хорошо"
char g[ ]="хорошо"
puts("данная информация отобразится на экране дисплея");
puts('f');- отобразится символьный литерал- f
puts(g);-отобразится символьная переменная- слово "хорошо"
puts(G);- отобразится символьная константа- слово "хорошо"
Простейший неформатный ввод данных
Функции неформатного ввода в stdio имеют описание
int_cdecl
Простейший неформатный ввод данных
Функции неформатного ввода в stdio имеют описание
int_cdecl
int_cdecl qets(char*_s);
где для ввода символа используется qetchar() без аргумента.
Функция gets() читает строку символов, оканчивающуюся символом перевода строки в переменную *s из стандартного входного потока stdin. Данная символьная строка оканчивается символом перехода на новую строку, которая при записи в *s заменяется на нулевое окончание ‘\0’.
Функция qets(string) - аналогична scanf(" %s",string), но в отличие от нее передает все символы до '\n’. Пример:
#include
int main(void)
{char string[80];
printf("введите строку");
gets(string);
printf("Была введена строка: %s\n", string);
return 0;
}
Форматированный ввод/ вывод
Форматированный ввод/ вывод может быть выполнен благодаря использованию
Форматированный ввод/ вывод
Форматированный ввод/ вывод может быть выполнен благодаря использованию
int_cdecl printf(const char *__format,...);
int_cdecl scanf(const char *__format,...);
Запишем эти функции в следующем виде:
printf(упр.текст.(форматная)строка[,список аргументов]);
scanf(упр.текст.(форматная) строка[,список аргументов]);
Управляющая строка символов задает способ преобразования данных и состоит из произ¬вольной последовательности символов, в которой знак "%xxx" заменяется символами выводи¬мой информации. Символы после %xxx до первого разделителя рассматриваются как специфи¬кация преобразования значения выводимой переменной из списка аргументов. Спецификация преобразования задается в виде последовательности:
%[флаг][ширина][.точность][f/n/h/l]<тип>
Форматированный ввод/ вывод
[флаг]
Форматированный ввод/ вывод
[флаг]
Форматированный ввод/ вывод
[ширина]- воздействует только на вывод
Форматированный ввод/ вывод
[ширина]- воздействует только на вывод
Форматированный ввод/ вывод
[.точность]- воздействует только на вывод
Форматированный ввод/ вывод
[.точность]- воздействует только на вывод
Форматированный ввод/ вывод
--->[ F | N | h | l ]
Форматированный ввод/ вывод
--->[ F | N | h | l ]
Форматированный ввод/ вывод
Форматированный ввод/ вывод
Форматированный ввод/ вывод
Вывод строк puts(string) - аналогично printf(“%s\n”,string).
Необходимо отметить, что функция
Форматированный ввод/ вывод
Вывод строк puts(string) - аналогично printf(“%s\n”,string).
Необходимо отметить, что функция
- закончилась управляющая последовательность (форматная строка).
- очередной элемент ввода не удовлетворяет текущей спецификации преобразования или не совпадает с символом образца.
- достигнут конец файла ввода.
Примеры:
printf ("Печатается данный текст");
курсор остается на этой же строке после символа «T».
printf ("печатается данный текст \n ");//курсор переходит на следующую строку в первую позицию.
Для 1,2 случая функция возвращает число введенных переменных (т.е. в ячейке scanf число введенных переменных). Для 3 случая функция возвращает значение EOF. Следует заметить, что функция scanf по формату S вводит символы вводимого потока до первого разделителя, поэтому часто приходится очищать буфер stdin с помощью функции fflush(stdin).
Форматированный ввод/ вывод (примеры)
Форматированный ввод/ вывод (примеры)
Простейший ввод /вывод С++
Рассмотренные выше функции ввода вывода относятся к простейшим
Простейший ввод /вывод С++
Рассмотренные выше функции ввода вывода относятся к простейшим
Однако эти функции используются и в последних версиях языка, поэтому возникла необходимость их приведения.
В последних версиях операции ввода /вывода реализованы на основе использования методов объектно-ориентированного программирования и поэтому будет приведено их краткое их описание, а подробное их рассмотрение будет произведено в последующих главах.
При рассмотрении вопросов связанных с вводом выводом информации пользуются понятием поток. Под потоком понимается абстрактное понятие, относящееся к любому переносу данных от источника к приемнику данных.
Базовые операции ввода /вывода последних версий поддерживаются тремя классами:
istream- ввод; ostream- вывода; iostream- ввода /вывода. Использование базовых функций требует подключения заголовочного файла
Простейший ввод /вывод С++
В качестве начальных сведений необходимо знать, что пользователю
Простейший ввод /вывод С++
В качестве начальных сведений необходимо знать, что пользователю
Библиотека iostream.h перегружает два оператора поразрядного сдвига: << - поместить в выходной поток; >> - получить из входного потока.
Операция потокового вывода “<<”- в качестве операнда слева служит объект типа ostream (cout), а правый операнд может иметь любой встроенный тип (char, short, int, long, char* (строка), float, double, long double, void*) или любой переопределённый из встроенных типов тип. Операция “<<” обладает ассоциативностью слева и возвращает ссылку на объект ostream, что позволяет организовать каскадный вывод операндов.
Например:
int d=99;
float r=27.7;
cout<<”переменная d=”<
cout<<&d;// выводится адрес переменной d в шестнадцатеричном формате
Простейший ввод /вывод С++
Операция потокового ввода “>>”- в качестве операнда слева
Простейший ввод /вывод С++
Операция потокового ввода “>>”- в качестве операнда слева
Форматирование ввода и вывода определяется различными флагами состояний формата, перечисленными в классе ios. Эти состояния определяются битами числа типа long int следующим образом:
Простейший ввод /вывод С++
// флаги формата
public:
enum {
skipws = 0x0001,
Простейший ввод /вывод С++
// флаги формата
public:
enum {
skipws = 0x0001,
left = 0x0002, // вывод с левым выравниванием
right = 0x0004, // вывод с правым выравниванием
internal = 0x0008, // заполнитель после знака или указателя системы счисления
dec = 0x0010, // десятичное преобразование
oct = 0x0020, // восьмеричное преобразование
hex = 0x0040, // шестнадцатеричное преобразование
showbase = 0x0080, // показать на выходе указатель системы счисления
showpoint = 0x0100, // показать позицию десятичной точки (на выходе)
uppercase = 0x0200,// шестнадцатеричный вывод значений буквами верхнего регистра
showpos = 0x0400, // добавляет " + " к положительным целым числам
scientific = 0x0800,// использовать запись чисел с плавающей
точкой с выводом экспоненты Е например, 12345E2
fixed = 0x1000, // использовать запись чисел с плавающей точкой типа 123.45
unitbuf = 0x2000, // стирание всех потоков после вставки
stdio = 0x4000, // стирание stdout и stderr после вставки
boolalpha = 0x8000// вставка/извлечение bools как текстовый или числовой
Простейший ввод /вывод С++
Эти флаги читаются и устанавливаются функциями элементами
Простейший ввод /вывод С++
Эти флаги читаются и устанавливаются функциями элементами
По умолчанию операция “>>” опускает пробельные символы, и затем считывает символы, соответствующие типу вводимого объекта. Пропуск пробельных символов управляется флагом ios::skipws в перечислимой переменной состояния. Флаг skipws обычно ус¬танавливает пропуск пробельных символов. Очистка этого флага (например, при помощи setf) выключает пропуск пробельных символов.
Например:
cout<<’’введите переменные d,r’’;
cin>>d>>r;
В результате выполнения операции вывода на экране дисплея будет отображено
введите переменные d,r.
После чего необходимо ввести переменные d и r, разделяя их произвольным количеством пробелов.
Использование манипуляторов при вводе /выводе данных
Форматированный вывод в С++ обеспечивается
Использование манипуляторов при вводе /выводе данных
Форматированный вывод в С++ обеспечивается
Использование манипуляторов при вводе /выводе данных
Манипуляторы воспринимают в качестве аргументов
Использование манипуляторов при вводе /выводе данных
Манипуляторы воспринимают в качестве аргументов
#include
//требуется для параметризованных манипуляторов
#include
int main(void) {
int i = 1122, j = 3344, k = 55;
cout << setw(4) << i << setw(6) << j<
cout << setw(6) << i << setw(6) << j << setw(6) << k;
cin>>i; return(0);
}
на экране дисплея будет отображена информация:
1122 334455
1122 3344 55
Использование манипуляторов при вводе /выводе данных
Манипулятор setw представляет собой параметризованный манипулятор,
Использование манипуляторов при вводе /выводе данных
Манипулятор setw представляет собой параметризованный манипулятор,
Поскольку манипуляторы объединяются в цепочку занесения в поток то для некоторых задач целесообразно писать свои собственные манипуляторы, без параметров. Например, ниже приведена функция префиксирования к выводимой информации знака доллара:
#include
// табулировать и префиксировать вывод знаком доллара
ostream& money (ostream& output) {
return output << "\t$";
}
int main(void) {
int rashod= 135, prixod = 231;
cout<<"rashod="<
на экране дисплея будет отображена информация:
rashod= $135 prixod = $231