C ++ Basic Input / Output
Стандартные библиотеки C ++ предоставляют обширный набор возможностей ввода / вывода, которые мы увидим в следующих главах. В этой главе будут обсуждаться самые основные и наиболее распространенные операции ввода-вывода, необходимые для программирования на C ++.
C ++ ввод / вывод происходит в потоках, которые представляют собой последовательности байтов. Если байты передаются из устройства, такого как клавиатура, дисковод, сетевое соединение и т. Д., В основную память, это называется операцией ввода, и если байты передаются из основной памяти в устройство, такое как экран дисплея, принтер, дисковод или сетевое соединение и т. д., это называется операцией вывода .
Заголовочные файлы библиотеки ввода / вывода
Существуют следующие заголовочные файлы, важные для программ на C ++:
Sr.No | Заголовочный файл, функция и описание |
---|---|
1 | <iostream> Этот файл определяет объекты cin, cout, cerr и clog , которые соответствуют стандартному входному потоку, стандартному выходному потоку, небуферизованному стандартному потоку ошибок и буферизованному стандартному потоку ошибок, соответственно. |
2 | <iomanip> В этом файле объявляются службы, полезные для выполнения форматированного ввода-вывода с помощью так называемых параметризованных потоковых манипуляторов, таких как setw и setprecision . |
3 | <fstream> Этот файл объявляет службы для управляемой пользователем обработки файлов. Мы обсудим это подробно в главе, связанной с файлами и потоками. |
<iostream>
Этот файл определяет объекты cin, cout, cerr и clog , которые соответствуют стандартному входному потоку, стандартному выходному потоку, небуферизованному стандартному потоку ошибок и буферизованному стандартному потоку ошибок, соответственно.
<iomanip>
В этом файле объявляются службы, полезные для выполнения форматированного ввода-вывода с помощью так называемых параметризованных потоковых манипуляторов, таких как setw и setprecision .
<fstream>
Этот файл объявляет службы для управляемой пользователем обработки файлов. Мы обсудим это подробно в главе, связанной с файлами и потоками.
Стандартный поток вывода (cout)
Предопределенный объект cout является экземпляром класса ostream . Говорят, что объект cout «подключен» к стандартному устройству вывода, которым обычно является экран дисплея. Cout используется вместе с оператором вставки потока, который записывается как <<, что на два знака меньше, чем показано в следующем примере.
Live Demo
#include <iostream> using namespace std; int main() { char str[] = "Hello C++"; cout << "Value of str is : " << str << endl; }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат –
Value of str is : Hello C++
Компилятор C ++ также определяет тип данных переменной для вывода и выбирает соответствующий оператор вставки потока для отображения значения. Оператор << перегружен для вывода элементов данных встроенных типов integer, float, double, строк и значений указателей.
Оператор вставки << может использоваться более одного раза в одном выражении, как показано выше, а endl
Стандартный поток ввода (cin)
Предопределенный объект cin является экземпляром класса istream . Говорят, что объект cin прикреплен к стандартному устройству ввода, которым обычно является клавиатура. Cin используется вместе с оператором извлечения потока, который записывается как >>, что на два больше знака, как показано в следующем примере.
Live Demo
#include <iostream> using namespace std; int main() { char name[50]; cout << "Please enter your name: "; cin >> name; cout << "Your name is: " << name << endl; }
Когда приведенный выше код скомпилирован и выполнен, вам будет предложено ввести имя.
Please enter your name: cplusplus Your name is: cplusplus
Компилятор C ++ также определяет тип данных введенного значения и выбирает соответствующий оператор извлечения потока, чтобы извлечь значение и сохранить его в заданных переменных.
Оператор извлечения потока >> может использоваться более одного раза в одном выражении. Чтобы запросить более одного элемента данных, вы можете использовать следующее:
cin >> name >> age;
Это будет эквивалентно следующим двум утверждениям –
cin >> name; cin >> age;
Стандартный поток ошибок (cerr)
Предопределенный объект cerr является экземпляром класса ostream . Считается, что объект cerr присоединен к стандартному устройству ошибок, которое также является экраном дисплея, но объект cerr не буферизован, и каждая вставка потока в cerr приводит к немедленному отображению его вывода.
Cerr также используется вместе с оператором вставки потока, как показано в следующем примере.
Live Demo
#include <iostream> using namespace std; int main() { char str[] = "Unable to read...."; cerr << "Error message : " << str << endl; }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат –
Error message : Unable to read....
Стандартный поток журнала (засорение)
Предопределенный объект clog является экземпляром класса ostream . Говорят, что объект засорения прикреплен к стандартному устройству ошибки, которое также является экраном дисплея, но засорение объекта буферизуется. Это означает, что каждая вставка для засорения может привести к тому, что ее вывод будет храниться в буфере до тех пор, пока буфер не будет заполнен или пока буфер не будет очищен.
Засорение также используется вместе с оператором вставки потока, как показано в следующем примере.
Live Demo
#include <iostream> using namespace std; int main() { char str[] = "Unable to read...."; clog << "Error message : " << str << endl; }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат –
Error message : Unable to read....
Вы не сможете увидеть никакой разницы в cout, cerr и clog с этими небольшими примерами, но при написании и выполнении больших программ разница становится очевидной. Поэтому рекомендуется отображать сообщения об ошибках с использованием потока cerr, а при отображении других сообщений журнала следует использовать засорение.
Input-Output Потоки | Microsoft Learn
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
basic_iostream
, определенный в файле <istream> заголовка, является шаблоном класса для объектов, обрабатывающих потоки ввода-вывода на основе входных и выходных символов.
Существует два определения типов, определяющих специализации конкретного символа basic_iostream
и которые помогают упростить чтение кода: iostream
(не путать с потоком <ввода-вывода>) — это поток ввода-вывода, основанный на basic_iostream<char>
; wiostream
это поток ввода-вывода, основанный на basic_iostream<wchar_t>
.
Дополнительные сведения см. в разделах Класс basic_iostream, iostream и wiostream.
Производным из basic_iostream
basic_fstream
, который используется для потоковой передачи символьных данных в файлы и из них.Также имеются определения типов, которые предоставляют специальные для символов специализации для basic_fstream
. К ним относятся fstream
, представляющая собой поток файлового ввода-вывода, основанный на char
, и wfstream
, представляющая собой поток файлового ввода-вывода, основанный на wchar_t
. Дополнительные сведения см. в разделах Класс basic_fstream, fstream и wfstream. Для использования этих типов требуется включение fstream-файла <>заголовка.
Примечание
Если объект basic_fstream
используется для выполнения файлового ввода-вывода, хотя базовый буфер содержит отдельно назначенные позиции для чтения и записи, текущие позиции ввода и вывода связываются друг с другом, поэтому, чтение некоторых данных перемещает позицию вывода.
Шаблон класса basic_stringstream
и его общая специализация stringstream
часто используются для работы с объектами потока ввода-вывода для вставки и извлечения символьных данных. Дополнительные сведения см. в разделе Класс basic_stringstream.
stringstream
Класс basic_stringstream
<sstream>
Программирование iostream
Стандартная библиотека C++
C-стиль вход/вывод файла C-стиля-CppReference.com
Библиотека ввода/вывода
C-Style I/O
Подгрупп C I/O Стандартной библиотеки C ++ C-C. потоковые операции ввода/вывода. Заголовок
Потоки C обозначаются объектами типа std::FILE, к которым можно получить доступ и управлять ими только с помощью указателей типа std::FILE*. Каждый поток C связан с внешним физическим устройством (файл, стандартный поток ввода, принтер, последовательный порт и т. д.).
|
[править] Типы
Тип объекта | , способный хранить всю информацию, необходимую для управления потоком C I/O (определение типа) [править] |
fpos_t | полный тип объекта без массива, способный однозначно указывать позицию в файле, включая его многобайтовое состояние синтаксического анализа (typedef) [править] |
[править] Предопределенные стандартные потоки
stdinstdoutstderr | выражение типа ФАЙЛ* связанное с входным потоком выражение типа ФАЙЛ* связанное с выходным потоком выражение типа ФАЙЛ* , связанное с потоком вывода ошибок (макроконстанта) [править] |
[править] Функции
Доступ к файлам | |
открывает файл (функция) [править] | |
фриопен | открыть существующий поток с другим именем (функция) [править] |
fclose | закрывает файл (функция) [править] |
смыв | синхронизирует выходной поток с фактическим файлом (функция) [править] |
переключает файловый поток между широкосимвольным вводом-выводом и узкосимвольным вводом-выводом (функция) [править] | |
сетбуф | устанавливает буфер для файлового потока (функция) [править] |
сетвбуф | устанавливает буфер и его размер для файлового потока (функция) [править] |
Прямой ввод/вывод | |
читает из файла (функция) [править] | |
fwrite | записывает в файл (функция) [править] |
Неформатированный ввод/вывод | |
Байт/многобайтовый символ | |
fgetcgetc | получает символ из файлового потока (функция) [править] |
получает строку символов из файлового потока (функция) [править] | |
fputcputc | записывает символ в файловый поток (функция) [править] |
записывает строку символов в файловый поток (функция) [править] | |
гетчар | читает символ из стандартного ввода (функция) [править] |
получает (устарело в С++ 11) (удалено в С++ 14) | читает строку символов из стандартного ввода (функция) [править] |
путчар | записывает символ в стандартный вывод (функция) [править] |
записывает строку символов в стандартный вывод (функция) [править] | |
ungetc | помещает символ обратно в файловый поток (функция) [править] |
Широкий символ | |
fgetwcgetwc | получает расширенный символ из файлового потока (функция) [править] |
fgetws | получает широкую строку из файлового потока (функция) [править] |
фпутвкпутвк | записывает расширенный символ в файловый поток (функция) [править] |
фпутвс | записывает широкую строку в файловый поток (функция) [править] |
гетвчар | считывает расширенный символ из стандартного ввода (функция) [править] |
путвчар | записывает расширенный символ в стандартный вывод (функция) [править] |
ungetwc | помещает расширенный символ обратно в файловый поток (функция) [править] |
Форматированный ввод/вывод | |
Байт/многобайтовый символ | |
сканффсканфсссканф | читает форматированный ввод со стандартного ввода, файлового потока или буфера (функция) [править] |
vscanfvfscanfvsscanf (С++11)(С++11)(С++11) | читает форматированный ввод со стандартного ввода, файлового потока или буфера с использованием списка переменных аргументов (функция) [править] |
printffprintfsprintfsnprintf (С++ 11) | выводит форматированный вывод на стандартный вывод, в файловый поток или в буфер (функция) [править] |
vprintfvfprintfvsprintfvsnprintf (С++ 11) | выводит форматированный вывод в стандартный вывод, файловый поток или буфер с использованием списка переменных аргументов (функция) [править] |
Широкий символ | |
всканфвсканфввсканф | считывает отформатированный ввод расширенных символов из стандартного ввода, файлового потока или буфера (функция) [править] |
vwscanfvfwscanfvswscanf (С++11)(С++11)(С++11) | считывает форматированный ввод расширенных символов со стандартного ввода, файловый поток или буфер с использованием списка переменных аргументов (функция) [править] |
wprintffwprintfswprintf | выводит отформатированный вывод широких символов на стандартный вывод, в файловый поток или в буфер (функция) [править] |
vwprintfvfwprintfvswprintf | выводит отформатированный вывод широких символов на стандартный вывод, в файловый поток или в буфер с использованием списка переменных аргументов (функция) [править] |
Позиционирование файла | |
возвращает индикатор текущей позиции в файле (функция) [править] | |
fgetpos | получает индикатор позиции файла (функция) [править] |
перемещает индикатор позиции файла в определенное место в файле (функция) [править] | |
фсетпос | перемещает индикатор позиции файла в определенное место в файле (функция) [править] |
перемотка назад | перемещает индикатор позиции файла в начало файла (функция) [править] |
Обработка ошибок | |
очиститель | очищает ошибки (функция) [править] |
проверяет конец файла (функция) [править] | |
ошибка | проверяет файл на ошибку (функция) [править] |
ошибка | отображает строку символов, соответствующую текущей ошибке для stderr (функция) [править] |
Операции с файлами | |
удалить | стирает файл (функция) [править] |
переименовать | переименовывает файл (функция) [править] |
tmpfile | создает и открывает временный автоматически удаляемый файл (функция) [править] |
тмпнам | возвращает уникальное имя файла (функция) [править] |
[править] Константы макросов
целочисленное константное выражение типа int и отрицательное значение (макро-константа) | |
FOPEN_MAX | количество файлов, которые можно открыть одновременно (макроконстанта) |
ФАЙЛ_МАКС | размер, необходимый для массива символов для хранения самого длинного поддерживаемого имени файла (макрос-константа) |
БУФСИЗ | размер буфера, используемого std::setbuf (макроконстанта) |
_IOFBF_IOLBF_IONBF | Аргумент для std::setbuf, указывающий на полностью буферизованный ввод-вывод 9Аргумент 0073 для std::setbuf, указывающий линейный буферизованный ввод-вывод Аргумент для std::setbuf, указывающий небуферизованный ввод-вывод (макрос-константа) |
SEEK_SETSEEK_CURSEEK_END | Аргумент для std::fseek, указывающий поиск с начала файла Аргумент для std::fseek, указывающий поиск с текущей позиции в файле Аргумент для std::fseek, указывающий поиск с конца файла (макрос-константа) |
TMP_MAX | максимальное количество уникальных имен файлов, которые гарантированно могут быть сгенерированы std::tmpnam (макрос-константа) |
L_tmpнам | размер, необходимый для массива символов для хранения результата std::tmpnam (макрос-константа) |
[править] См.
такжедокументацию C для ввода/вывода файлов |
Введение в программирование переменных ввода-вывода
Просмотр
Chevron RightКомпьютерная наука
Chevron RightРазработка программного обеспечения
Заполненные звезды StarFiled StarFiled Starhalf Faded Star4,6
59 Рейтинги
Предлагается
2 6611912 -й. Указанный
91111111111112. , вы:
Создадите программу на C, которая читает из стандартного ввода и выводит данные
Выполняет арифметические операции C над данными, введенными пользователем.
Распечатать описание данных и распечатать данные с помощью печати в формате C заявления.
2 часа
Средний уровень
Загрузка не требуется
Видео с разделенным экраном
Английский
Только рабочий стол
В этом проекте вы создадите программу на языке C, которая демонстрирует основные типы данных, а также способы их ввода и вывода. . Язык программирования C является основой для многих других языков программирования. Его синтаксис использовался в таких языках, как C++, Java и C#. Это по-прежнему предпочтительный язык для написания операционных систем, игр и многих других приложений, где производительность имеет решающее значение. Примечание. Этот курс лучше всего подходит для учащихся, проживающих в регионе Северной Америки. В настоящее время мы работаем над тем, чтобы предоставить такой же опыт в других регионах.
Навыки, которые вы разовьете
В видеоролике, который воспроизводится на разделенном экране с вашей рабочей областью, инструктор проведет вас по следующим шагам:
Создайте программу на C, которая считывает стандартный ввод и выводит данные.
Используйте целочисленный тип данных C и подсказку для чтения возраста человека.
Используйте число с плавающей запятой двойной и одинарной точности C и обратите внимание на разница в размерах.
Выполнение арифметических операций C над данными, введенными пользователем.
Распечатайте описание данных и распечатайте данные в формате таблицы, используя операторы печати в формате C.
Ваше рабочее пространство представляет собой облачный рабочий стол прямо в вашем браузере, загрузка не требуется
Преподаватель пошагово ведет вас на разделенном экране
Дэвид Далсвин
Специалист по предмету
Freedom Learning Group
114 291 Учащиеся
96 Курсы
Reviews
4.6
Filled StarFilled StarFilled StarFilled StarHalf Filled Star11 reviews
5 stars
71.18%
4 stars
20.33%
3 stars
8.47%
ЛУЧШИЕ ОТЗЫВЫ ОТ ВВЕДЕНИЯ В ПРОГРАММИРОВАНИЕ ПЕРЕМЕННЫХ C ВХОД ВЫВОД
Заполнено Звездное Заполнение Звездное Заполненное Звездное Заполненное Звездное Заполненное Звездаот GR
8 августа 2022 г.
Это был потрясающий проект. Я люблю программировать на языке C-Programming Language. Это дает мне огромные силы.
Filled StarFilled StarFilled StarFilled StarFilled Starby SS
25 декабря 2021 г.
Хорошая платформа для завершения неполного курса обучения
Просмотреть все отзывы
Купив управляемый проект, вы получите все необходимое для завершения Управляемый проект, включающий доступ к рабочему пространству облачного рабочего стола через веб-браузер, который содержит файлы и программное обеспечение, необходимые для начала работы, а также пошаговые видеоинструкции от эксперта в данной области.
Поскольку ваша рабочая область содержит облачный рабочий стол, размер которого подходит для ноутбука или настольного компьютера, управляемые проекты недоступны на вашем мобильном устройстве.
Преподаватели управляемых проектов — это эксперты в предметной области, которые имеют опыт работы с навыками, инструментами или областями своего проекта и страстно желают поделиться своими знаниями, чтобы повлиять на миллионы учащихся по всему миру.
Вы можете загрузить и сохранить любой из созданных вами файлов из управляемого проекта. Для этого вы можете использовать функцию «Файловый браузер» во время доступа к своему облачному рабочему столу.
Финансовая помощь не предоставляется для управляемых проектов.
Аудит недоступен для управляемых проектов.
В верхней части страницы вы можете нажать на уровень опыта для этого управляемого проекта, чтобы просмотреть все необходимые знания.