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 + -
显示快捷键?