ホームページ  >  記事  >  バックエンド開発  >  C++ エラー: 入力および出力ストリーム オブジェクトが開かれていません。解決方法は?

C++ エラー: 入力および出力ストリーム オブジェクトが開かれていません。解決方法は?

WBOY
WBOYオリジナル
2023-08-22 08:49:551268ブラウズ

C はソフトウェア開発で広く使用されている高級プログラミング言語で、システム ソフトウェア、アプリケーション ソフトウェア、ゲームなどのソフトウェアの開発によく使用されます。 C でプログラムを作成する過程で、入力ストリーム オブジェクトと出力ストリーム オブジェクトが開かれていないというエラーなど、いくつかのエラーが発生することがよくあります。この記事では、入力ストリームオブジェクトと出力ストリームオブジェクトが開かない原因と解決策を紹介します。

1. エラー メッセージ

プログラム内で入出力ストリーム オブジェクトを使用する場合、対応する入出力ファイル ストリームが正常に開かないと、次のエラー メッセージが表示されます。

输入输出流对象未打开

2. エラーの原因

  1. ファイルが存在しないか、パスが間違っています

ファイルを開いたときに、ファイルがファイル ストリームが存在しないか、パスが間違っているため、ファイル ストリームを開くことができず、入力ストリーム オブジェクトと出力ストリーム オブジェクトが開かれていないというエラーが発生します。

  1. ファイル オープン モード エラー

ファイル ストリームを開くときは、対応するファイル オープン モード (読み取り専用、書き込み専用、読み取り専用など) を指定する必要があります。などを書きます)。間違ったオープン方法を選択すると、入力ストリーム オブジェクトと出力ストリーム オブジェクトがオープンされないというエラーが発生します。

  1. 読み取りおよび書き込み場所のエラー

ファイル ストリームの場合、ファイルの読み取りおよび書き込み時に読み取りおよび書き込みの場所を指定する必要があります。読み取りおよび書き込みの場所が正しく指定されていない場合も、入出力ストリーム オブジェクトが開かれていないというエラーが発生します。

3. 解決策

  1. ファイル パスを確認する

入力ストリーム オブジェクトと出力ストリーム オブジェクトが開かれていないというエラーが発生した場合は、まず次のことを行う必要があります。ファイルパスが正しいことを確認し、ファイルが存在することを確認してください。ファイルが存在しない場合、またはファイル パスが間違っている場合は、ファイル パスをリセットする必要があります。

  1. ファイルを開く方法を確認する

ファイル ストリームの場合、対応するファイルを開く方法を指定する必要があります。間違ったオープン方法を選択すると、入力ストリーム オブジェクトと出力ストリーム オブジェクトがオープンされないというエラーが発生します。選択したファイルが正しく開かれているかどうかを確認する必要があります。

通常、ファイルを開くモードを「r」(読み取り専用) または「w」(書き込み専用) などに設定できます。

  1. 読み取りおよび書き込みの場所を確認する

ファイル ストリームの場合、ファイルの読み取りおよび書き込み時に読み取りおよび書き込みの場所を指定する必要があります。読み取りおよび書き込みの場所が正しく指定されていない場合も、入出力ストリーム オブジェクトが開かれていないというエラーが発生します。読み取りおよび書き込みの場所が正しく設定されていることを確認する必要があります。

4. サンプル コード

次のコードは、C の入力ストリームと出力ストリームを使用してファイルを操作し、入力ストリーム オブジェクトと出力ストリーム オブジェクトが開かれていないというエラーを回避する方法を示しています。ここでは、ファイルを読み取り専用モードで開き、ファイルの内容を読み取って画面に出力します。

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    string filename = "example.txt";         // 文件路径
    ifstream infile;                         // 输入流对象

    infile.open(filename, ios::in);          // 打开文件
    if (!infile.is_open()) {                  // 检查是否打开成功
        cout << "无法打开文件!" << endl;
        return 0;                            // 返回主函数
    }

    string line;
    while (getline(infile, line)) {          // 逐行读取内容
        cout << line << endl;                // 输出
    }

    infile.close();                          // 关闭文件
    return 0;
}

上記のコードでは、C の ifstream オブジェクトを使用して example.txt ファイルを開き、while ループを使用してファイルの内容を 1 行ずつ読み取り、画面に出力します。 main 関数の最後に、ファイルを閉じます。

5. 概要

C でプログラムを作成するときに、入力ストリーム オブジェクトと出力ストリーム オブジェクトが開かれないというエラーが発生した場合、ファイル パス、ファイルのオープン方法、および読み取りおよび書き込みの場所が正しく設定されています。これらのパラメータを正しく設定することによってのみ、ファイル ストリームを正常に開き、ファイルの内容を読み書きできるため、入力ストリーム オブジェクトと出力ストリーム オブジェクトが開かれていないというエラーを回避できます。

以上がC++ エラー: 入力および出力ストリーム オブジェクトが開かれていません。解決方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。