#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( 값 );


처럼 하면됨~