この記事では、入力操作と出力操作のためのc ioStreamsの使用に関する一般的な質問について説明します。
C標準ライブラリは、入力操作と出力操作を処理するためのiostream
ライブラリを提供します。このライブラリは、 printf
やscanf
などの低レベルのC関数と比較して、高レベルのオブジェクト指向のアプローチを提供します。コアコンポーネントは、デバイス(コンソールやファイルなど)に流れ込む文字のシーケンスを表すストリームです。
基本的な使用法:
<iostream></iostream>
ヘッダーファイルを含める必要があります: #include <iostream></iostream>
。オブジェクト:標準のストリームは事前に定義されています:
std::cin
:標準入力ストリーム(通常、キーボード)。std::cout
:標準出力ストリーム(通常はコンソール)。std::cerr
:標準エラーストリーム(通常、コンソール、バッファーなし)。std::clog
:標準のログストリーム(通常、コンソール、バッファリング)。 )は出力に使用され、抽出演算子( <code>>>
)が入力に使用されます。
例:
<code class="c ">#include <iostream> #include <string> int main() { std::string name; int age; std::cout > name; std::cout > age; std::cout </string></iostream></code>
この例はstd::cin
、 std::cout
、および弦の操作を使用した基本的な入力と出力を示しています。 std::endl
newline文字を挿入します。
いくつかの一般的な落とし穴は、iOSTREAMSを使用するときに予期しない動作やエラーにつながる可能性があります。
printf
/ scanf
とstd::cout
/ std::cin
混合しないでください。コードの明確さと保守性を向上させるために、一貫して1つの方法に固執します。good()
メソッドまたはを使用して、入力操作の後、常にストリームの状態を確認してください!
オペレーター(エラーフラグをチェックします):<code class="c ">if (!(std::cin >> age)) { std::cerr ::max(), '\n'); }</code>
std::cout
は通常、ラインバッファーです。つまり、出力は新しいライン文字( \n
)またはstd::flush
発生するまですぐに表示されません。 std::cerr
は通常バッファーされていないため、すぐにエラーが表示されます。 std::cout
への即時出力については、 std::cout 。
std::ofstream
またはstd::ifstream
を使用して常に開きますclose()
メソッドを使用して、RAII(リソース取得は初期化です)テクニックを使用して自動的に閉じられることを確認します(たとえば、スマートポインターを使用したり、範囲外に出たりすることができます)。
)は、主要な白人を無視します。 Whitespace文字を読む必要がある場合は、 std::getline()
を使用してください。c ioStreamsは、ファイルI/Oを処理するための効率的な方法を提供します。
ファイル出力:
<code class="c ">#include <fstream> std::ofstream outputFile("my_file.txt"); if (outputFile.is_open()) { outputFile </fstream></code>
ファイル入力:
<code class="c ">#include <fstream> #include <string> std::ifstream inputFile("my_file.txt"); if (inputFile.is_open()) { std::string line; while (std::getline(inputFile, line)) { std::cout </string></fstream></code>
効率の考慮事項:
std::ios_base::sync_with_stdio(false);
C標準I/Oライブラリとの同期を無効にするために、場合によってはわずかなパフォーマンスの向上を提供する可能性があります。ただし、予測不可能な出力順序につながる可能性があるため、注意してください。std::ios::binary
を使用してバイナリモードでファイルを開きます。std::cin
、 std::cout
、およびstd::cerr
in c iostreamsの違いは何ですか? std::cin
、 std::cout
、and std::cerr
は、それぞれが明確な目的を果たします。
std::cin
(標準入力):このストリームは、標準の入力デバイス、通常はキーボードから入力を読み取るために使用されます。抽出演算子(
)はstd::cin
のデータを読み取るために使用されます。std::cout
(標準出力):このストリームは、標準の出力デバイス、通常はコンソールへの出力を書き込むために使用されます。挿入演算子( )は<code>std::cout
にデータを書き込むために使用されます。通常、ラインバッファーです。
std::cerr
(標準エラー):このストリームは、標準のエラーデバイス、通常はコンソールにエラーメッセージを書き込むために使用されます。通常、バッファリング設定に関係なく、エラーメッセージがすぐに表示されるようにすることができます。これは、重要なエラー情報を遅滞なく表示するために重要です。 std::cerr
エラーと診断情報の報告によく使用されます。要するに、 std::cin
入力を読み取り、 std::cout
通常の出力を書き込み、 std::cerr
エラーメッセージを書き込みます。バッファリング動作の違いはstd::cout
とstd::cerr
の重要な区別です。
以上が入力/出力(ioStream)にC標準ライブラリを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。