C++ ヘッダー ファイルの概要 — <iostream> ヘッダー ファイル

C++ ヘッダー ファイルの概要 -<iostream>ヘッダー ファイル

<iostream>ヘッドファイル

導入

C++ で入力および出力操作を実行するには、iostream ヘッダーを使用する必要があります。ヘッダー ファイルがないと<iostream>、ユーザーから入力を取得したり、出力を印刷したりすることができません。

import型の静的保存期間オブジェクトを<iostream>定義しているかのように動作します。それが最初のオブジェクトである場合は、そのコンストラクタが各標準ストリーム オブジェクトを初期化し、それが最後のオブジェクトである場合は、destroyed オブジェクトのデストラクタがこれらのオブジェクト (cin と wcin を除く) を初期化します。フラッシュされる。std::ios_base::Initstd::ios_base::Initstd::ios_base::Init

<iostream>ライブラリは C++ の最も基本的かつ重要なヘッダー ファイルと考えられており、入出力ストリームのクラスと関数を定義し、プログラムとコンソールまたはファイル間の対話的な操作を実現できます。<iostream>C++ を使用して入出力操作を行うには、ライブラリの知識が不可欠です。

概要

#include <ios>
#include <streambuf>
#include <istream>
#include <ostream>
 
namespace std {
    
    
 
    extern istream cin;
    extern ostream cout;
    extern ostream cerr;
    extern ostream clog;
 
    extern  wistream wcin;
    extern  wostream wcout;
    extern  wostream wcerr;
    extern  wostream wclog;
 
}

開発の歴史

C++ を学習する多くの人は、C++ に C++ があることを知っています<iostream.h>これは、以前のバージョンの C++ で使用されていたもので、現在のバージョンではサポートされていません。現在のバージョンでは iostream が使用されます。C++ の初期バージョンが登場した後、業界の反応は一般に<iostream.h>遅く、C++ は絶えず改良されてきました。特定のバージョンでは、新しい入出力ストリームが作成されました。この入出力ストリームは速度が速く、一般に受け入れられています。業界です。C++ と C の違い、C++ の進歩と C++ の初期言語との互換性を強調するために、C++ 標準ではこの入出力ストリームを iostream と名付け、同時に予約されています。 2 つのファイルは、Viual Studio で編集できます。<iostream.h>の「外部依存関係」を参照してください。それらのコードは同じではありません。

構成

<iostream>ライブラリのベースには、istream と ostream という名前の 2 つの型があり、それぞれ入力ストリームと出力ストリームを表します。ストリームは、IO デバイスから読み取られる、または IO デバイスに書き込まれる一連の文字です。「ストリーム」という用語は、文字が時間の経過とともに連続的に生成または消費されることを説明しようとしています。

標準ライブラリでは4 4が定義されています4つのIOオブジェクト。入力を処理するときに、istreamという名前cin(シーインと発音) 型のオブジェクトが使用されます。このオブジェクトは標準入力とも呼ばれます。出力は、cout標準出力とも呼ばれる ostream 型 (シーアウトと発音) という名前のオブジェクトを使用して処理されます。標準ライブラリでは、他に 2 つの ostream オブジェクトcerr(それぞれ「see-err」と「see-log」と発音します) と clog も定義されています。cerrこのオブジェクトは標準エラーとも呼ばれ、通常、プログラムのユーザーに警告メッセージやエラー メッセージを出力するために使用されます。オブジェクトは、clogプログラムの実行に関する一般的な情報を生成するために使用されます。

基本クラスのテンプレート

<iostream(.h)>ライブラリの基礎はクラス テンプレートの階層です。クラス テンプレートは、ライブラリの機能のほとんどを型に依存しない方法で提供します。

基本クラス テンプレートはクラス テンプレートのコレクションであり、各クラス テンプレートには 2 つのパラメータがあります。文字タイプ (charT) パラメータは処理される要素タイプを決定し、属性パラメータは特定の要素タイプごとに追加の特性を提供します。

このクラス階層内のクラス テンプレートには、その文字タイプのインスタンスと比較して、名前の前に追加の接頭辞 basic_ が付いています。

たとえば、istream のインスタンス化元のクラス テンプレートの名前は、basic_istream、fstream のインスタンス化元のクラス テンプレートの名前は、basic_fstream などとなります。唯一の例外は ios_base です。これは型に依存しないためクラス テンプレートに基づいておらず、通常のクラスです。

クラステンプレートのインスタンス

<iostream(.h)>iostream クラス テンプレート階層全体の標準インスタンスの 2 セットがライブラリに統合されています。1 つのセットはシングルバイト指向で char 型の要素を処理し、もう 1 つのセットはワイドバイト指向で wchar_t 型の要素を処理します。

シングルバイト (char) 指向のインスタンスは、おそらく<iostream(.h)>ライブラリの一部としてよく知られています。ios、istream、ofstream などのクラスはすべてシングルバイト指向です。図 1 は、1 バイトのすべてのクラスの名前と関係を示しています。ワイドバイト指向 (wchar_t 型) インスタンスはシングルバイト指向のインスタンスと同じ名前が付けられますが、すべてのクラス名とオブジェクト名には接頭辞 ww が付きますw、wios、wistream、wofstream など。

標準オブジェクト

ライブラリの一部として<iostream(.h)>、ヘッダー ファイルは、標準入出力デバイス上で入出力操作を実行するために使用されるいくつかのオブジェクトを宣言します。

これらのオブジェクトは 2 つのグループに分類されます。1 つはシングルバイト指向、つまり共通の cin、cout、cerr、clog です。

ワイドバイト指向の対応するものは、wcin、wcout、wcerr、および wclog として宣言されます。

タイプ

<iostream(.h)>ライブラリ内のクラスは、メンバーのプロトタイプにプリミティブ型を使用することはほとんどありませんが、通常はインスタンスのプロパティに関して定義された型を使用します。デフォルトの char 型と wchar_t 型のインスタンスの場合、streampos、streamoff、streamsize 型は、それぞれ位置、オフセット、サイズを表すために使用されます。

マニピュレータ

マニピュレータは、ストリーム オブジェクトを操作する挿入( <<) および抽出( >>) 演算子とともに使用するグローバル関数です。通常、ストリームの属性と形式が変更されます。endl、hex、scientific はマニピュレータの例です。

<iostream>ヘッダーファイルの構文

#include <iostream.h>  
#include "iostream.h"\n

<iostream>ヘッダー ファイルには 2 種類のストリームがあります。

  1. 入力ストリーム: ユーザーから入力を取得するには、入力ストリームに属する cin を使用する必要があります。

入力ストリームを使用するための構文:std::cin>> variable_name

cin を実行すると、値が入力されるまでカーソルは指定されたステートメントで停止します。入力した値は変数に格納されます。

  1. 出力ストリーム: 出力を印刷するには、出力ストリームで組み込み関数 cout を使用します。

cout の構文:std::cout<<variable_name

cout が実行されると、変数内の値が出力されます。

コンテンツ

// iostream standard header
#if     _MSC_VER > 1000
#pragma once
#endif
#ifndef _IOSTREAM_
#define _IOSTREAM_
#include <istream>
#ifdef  _MSC_VER
#pragma pack(push,8)
#endif  /* _MSC_VER */
_STD_BEGIN 
         // OBJECTS
static ios_base::
Init _Ios_init;
extern _CRTIMP istream cin;
extern _CRTIMP ostream cout;
extern _CRTIMP ostream cerr, clog;
          // CLASS _Winit
class _CRTIMP _Winit {
    
    
public:
     _Winit(); 
     ~_Winit();
private: 
    static int _Init_cnt;
     }; 
          // WIDE OBJECTS
static _Winit _Wios_init;
extern _CRTIMP wistream wcin;
extern _CRTIMP wostream wcout, wcerr, wclog;
_STD_END
#ifdef  _MSC_VER
#pragma pack(pop)
#endif  /* _MSC_VER */
 
#endif /* _IOSTREAM_ */
/*
 * Copyright (c) 1994 by P.J. Plauger.  ALL RIGHTS RESERVED. 
 * Consult your license regarding permissions and restrictions.
 */

おすすめ

転載: blog.csdn.net/ZH_qaq/article/details/131342626