⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 streamfile.cpp

📁 介绍c++游戏编程
💻 CPP
字号:

#include "StreamFile.h"
#include <stdio.h>
#include <assert.h>


StreamFile::StreamFile()
{
    m_file = NULL;
    m_bReadMode = false;
    m_bWriteMode = false;
}


StreamFile::~StreamFile()
{
    Close();
}


bool StreamFile::OpenRead (const std::string & filename)
{
    if (m_file != NULL)
        return false;

    m_file = fopen(filename.c_str(), "r");
    m_bReadMode = (m_file != NULL);
    return m_bReadMode;
}


bool StreamFile::OpenWrite (const std::string & filename)
{
    if (m_file != NULL)
        return false;

    m_file = fopen(filename.c_str(), "w");
    m_bWriteMode = (m_file != NULL);
    return m_bWriteMode;
}

void StreamFile::Close ()
{
    if (m_file != NULL)
        fclose(m_file);

    m_bWriteMode = false;
    m_bReadMode  = false;
}


int StreamFile::Read (int bytes, void * pBuffer)
{
    assert (pBuffer != NULL);

    if (!m_bReadMode)
        return 0;

    return fread(pBuffer, 1, bytes, m_file);
}


int StreamFile::Write (int bytes, const void * pBuffer)
{
    assert (pBuffer != NULL);

    if (!m_bWriteMode)
        return 0;

    return fwrite(pBuffer, 1, bytes, m_file);
}


bool StreamFile::SetCurPos (int pos)
{
    if (!m_bReadMode && !m_bWriteMode)
        return false;

    return (fseek(m_file, pos, SEEK_SET) == 0);
}


int StreamFile::GetCurPos ()
{
    if (!m_bReadMode && !m_bWriteMode)
        return 0;

    return ftell(m_file);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -