36 lines
840 B
C++
36 lines
840 B
C++
#include "TessesFramework/TextStreams/StdIOReader.hpp"
|
|
|
|
|
|
namespace Tesses::Framework::TextStreams
|
|
{
|
|
ConsoleReader::ConsoleReader()
|
|
{
|
|
|
|
}
|
|
bool ConsoleReader::ReadBlock(std::string& str,size_t len)
|
|
{
|
|
#if defined(_WIN32)
|
|
uint8_t* buff = new uint8_t[len];
|
|
#else
|
|
uint8_t buff[len];
|
|
#endif
|
|
size_t read=0;
|
|
size_t readTotal=0;
|
|
uint8_t* buffOff=buff;
|
|
do {
|
|
read=fread(buffOff,1,len,stdin);
|
|
if(read != 0) {readTotal+= read;len-=read; buffOff+=read;}
|
|
} while(read != 0);
|
|
if(readTotal == 0) return false;
|
|
str.append((const char*)buff, readTotal);
|
|
#if defined(_WIN32)
|
|
delete buff;
|
|
#endif
|
|
return true;
|
|
}
|
|
|
|
ConsoleReader StdIn()
|
|
{
|
|
return ConsoleReader();
|
|
}
|
|
} |