-1

ファイルの読み取りと書き込みに使用されるさまざまな IO 操作を提供するクラスを作成しています。現在、独自のファイルのオープン、クローズなどの関数を作成するのではなく、fstream から継承しようとしています。現在、以下のサンプル コードには関数が追加されていません。書き込みを開いて閉じます。ただし、テスト コードは実行時にファイルを正常に開くことができません。fstream から適切に継承できる追加のコードを追加します。g ++を使用したこのコードでは、コンパイラの警告やエラーは発生しません。クラッシュすることなく実行されますが、「ファイルを開くことができません」というメッセージが表示され、開くことができなかったことがわかります。

int main(int argc, char* argv[])
{
    FileParser myFileParser;

    myFileParser.open("c:\test.txt"); 
  if (myFileParser.is_open())
  {
    myFileParser << "This is a line.\n";
    myFileParser << "This is another line.\n";
    myFileParser.close();
  }
  else
  {
    cout << "Unable to open file\r\n";
  }

  myFileParser.close();

    return 0;
}

#pragma once
#include <fstream>
using namespace std;

class FileParser: public fstream 
{
    public:
        FileParser(void);
        virtual ~FileParser(void);

    private:
};

#include "FileParser.h"

FileParser::FileParser(void)
{
}

FileParser::~FileParser(void)
{
}

この問題に関するヘルプをいただければ幸いです。


問題は解決されました。サポートに感謝します。

よろしく

4

1 に答える 1

1

差し迫った問題に対処するには:

  1. バックスラッシュをエスケープするのを忘れました:

    myFileParser.open("c:\\test.txt");

  2. ファイル パスから、Windows を使用していると推測されますが、その場所でファイルを開く権限がないため、おそらく「権限が拒否されました」と表示されます (これは Vista 以降に当てはまります)。

于 2013-11-01T03:26:31.147 に答える