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 связан с внешним физическим устройством (файл, стандартный поток ввода, принтер, последовательный порт и т. д.).

  • 1 Тип
  • 2 Предопределенные стандартные потоки
  • 3 функции
    • 3.1 Доступ к файлам
    • 3.2 Прямой ввод/вывод
    • 3.3 Неформатированный ввод/вывод
      • 3.3.1 Байтовый/многобайтовый символ
      • 3.3.2 Широкий символ
    • 3.4 Форматированный ввод/вывод
      • 3.4.1 Байтовый/многобайтовый символ
      • 3.4.2 Широкий символ
    • 3. 5 Позиционирование файла
    • 3.6 Обработка ошибок
    • 3.7 Операции с файлами
  • 4 макроконстанты
  • 5 См. также

[править] Типы

Тип объекта
, способный хранить всю информацию, необходимую для управления потоком 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 Star

4,6

59 Рейтинги

Предлагается

2 6611912 -й. Указанный

91111111111112. , вы:

Создадите программу на C, которая читает из стандартного ввода и выводит данные

Выполняет арифметические операции C над данными, введенными пользователем.

Распечатать описание данных и распечатать данные с помощью печати в формате C заявления.

2 часа

Средний уровень

Загрузка не требуется

Видео с разделенным экраном

Английский

Только рабочий стол

В этом проекте вы создадите программу на языке C, которая демонстрирует основные типы данных, а также способы их ввода и вывода. . Язык программирования C является основой для многих других языков программирования. Его синтаксис использовался в таких языках, как C++, Java и C#. Это по-прежнему предпочтительный язык для написания операционных систем, игр и многих других приложений, где производительность имеет решающее значение. Примечание. Этот курс лучше всего подходит для учащихся, проживающих в регионе Северной Америки. В настоящее время мы работаем над тем, чтобы предоставить такой же опыт в других регионах.

Навыки, которые вы разовьете

В видеоролике, который воспроизводится на разделенном экране с вашей рабочей областью, инструктор проведет вас по следующим шагам:

  1. Создайте программу на C, которая считывает стандартный ввод и выводит данные.

  2. Используйте целочисленный тип данных C и подсказку для чтения возраста человека.

  3. Используйте число с плавающей запятой двойной и одинарной точности C и обратите внимание на разница в размерах.

  4. Выполнение арифметических операций C над данными, введенными пользователем.

  5. Распечатайте описание данных и распечатайте данные в формате таблицы, используя операторы печати в формате C.

Ваше рабочее пространство представляет собой облачный рабочий стол прямо в вашем браузере, загрузка не требуется

Преподаватель пошагово ведет вас на разделенном экране

Дэвид Далсвин

Специалист по предмету

Freedom Learning Group

114 291 Учащиеся

96 Курсы

Reviews

4.6

Filled StarFilled StarFilled StarFilled StarHalf Filled Star

11 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 Star

by SS

25 декабря 2021 г.

Хорошая платформа для завершения неполного курса обучения

Просмотреть все отзывы

Купив управляемый проект, вы получите все необходимое для завершения Управляемый проект, включающий доступ к рабочему пространству облачного рабочего стола через веб-браузер, который содержит файлы и программное обеспечение, необходимые для начала работы, а также пошаговые видеоинструкции от эксперта в данной области.

Поскольку ваша рабочая область содержит облачный рабочий стол, размер которого подходит для ноутбука или настольного компьютера, управляемые проекты недоступны на вашем мобильном устройстве.

Преподаватели управляемых проектов — это эксперты в предметной области, которые имеют опыт работы с навыками, инструментами или областями своего проекта и страстно желают поделиться своими знаниями, чтобы повлиять на миллионы учащихся по всему миру.

Вы можете загрузить и сохранить любой из созданных вами файлов из управляемого проекта. Для этого вы можете использовать функцию «Файловый браузер» во время доступа к своему облачному рабочему столу.

Финансовая помощь не предоставляется для управляемых проектов.

Аудит недоступен для управляемых проектов.

В верхней части страницы вы можете нажать на уровень опыта для этого управляемого проекта, чтобы просмотреть все необходимые знания.