#ifdef _MSC_VER
#pragma warning(disable: 4996)
#include <io.h>
#else
#define freopen( __VA_ARGS__ )
#include <unistd.h>
#endif
template
<
int BUFFER_SIZE = 1000000
>
class COSE_INPUT
{
private:
char inputs[ BUFFER_SIZE ];
char* ptr;
char* end;
public:
COSE_INPUT() = default;
void load()
{
ptr = inputs;
end = inputs + read( 0, inputs, BUFFER_SIZE );
}
int get_int()
{
int value;
while( *ptr < '0' ) ptr++;
for( value = 0; *ptr++ >= '0'; )
value = value * 10 + ( ptr[-1] - '0' );
return value;
}
void put( size_t n )
{
unsigned char temp[ 12 ];
temp[ sizeof temp - 1 ] = 0;
temp[ sizeof temp - 2 ] = ' ';
unsigned char* p = temp + sizeof temp - 2;
int count = 1;
do p[-count] = n % 10 | '0', n /= 10, count++; while( n );
write( 1, p - count + 1, count );
}
};
이게 갖다 붙이면 되는 코드구, ( 부호처리 뺐음, 개행인지 뭔지 쓰레기값 있길래 추가 코드 넣음 )
COSE_INPUT< 입력버퍼크기 > coin;
로 인스턴스 선언해서
양의 정수 입력받을때 coin.get_int() 하면 되구
출력할때 coin.put( 값 );
처럼 하면됨~
댓글 0