streamio.cpp

来自「空战游戏flacon源码」· C++ 代码 · 共 84 行

CPP
84
字号
#include "streamio.h"

FILE *CStreamIO::getstream (int useout)
{
	if (useout) return out;
	return in;
}

int CStreamIO::openread (char *file, int binary)
{
	if (in) return 0;
	if (binary) in = fopen (file, "rb");
	else in = fopen (file, "r");
	if (in) ihandle = fileno (in);
	return (int) in;
}

int CStreamIO::openwrite (char *file, int binary)
{
	if (out) return 0;
	if (binary) out = fopen (file, "wb");
	else out = fopen (file, "w");
	if (out) ohandle = fileno (out);
	return (int) out;
}

int CStreamIO::closefile (int useout)
{
	if (useout) {
		if (out) fclose (out);
		out = 0;
	}
	else {
		if (in) fclose (in);
		in = 0;
	}
	return 0;
}

int CStreamIO::eof ()
{
	return feof (in);
}

int CStreamIO::getfileptr ()
{
	return ftell (in);
}

int CStreamIO::movefileptr (int offset, int origin)
{
	return fseek (in, offset, origin);
}

int CStreamIO::filesize (int useout)
{
	int	cur = ihandle;
	if (useout) cur = ohandle;
	return (filelength (cur));
}

void CStreamIO::readline (char *buffer, int length)
{
	fgets (buffer, length, in);
}

// Note: Stupid Microsoft doesn't support vfscanf function
// So have to read one variable at a time
int CStreamIO::read (char *format, void *var )
{
	int i = fscanf (in, format, var);
	return i;
}

int CStreamIO::write (char *format, ... )
{
	va_list	aptr;

	va_start (aptr, format);
	int i = vfprintf (out, format, aptr);
	va_end (aptr);
	return i;
}

⌨️ 快捷键说明

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