It is usefull for algorithmic tasks, where your code has to have certain complexity. It is not a save way of using In/out, so I woudln't reccomend using it somewhere else besides webpages like SPOJ etc. where programms read from standard input and write to standard output. It should compile with newest gcc and -std=c++11 flag.
Try to write your own functions for fixed point types and cstrings! =)
Bibliography:
http://www.algorytm.edu.pl/fast-i-o.html
#include <cstdio>
template <class type>
inline void getUI ( type* des ) // reads unsigned integer from input
{
register char c = 0;
while ( c <= ' ' ) c = getc_unlocked(stdin);
(*des) = 0;
while ( c > ' ' )
{
(*des) = (*des) * 10 + ( c - '0' );
c = getc_unlocked(stdin);
}
}
template <class type>
inline void putUI ( type src ) // writes unsigned integer to output
{
if ( src == 0 )
{
putc_unlocked( '0', stdout );
return;
}
register char c [21];
register short k = 0;
while ( src > 0 )
{
c[k ++] = src % 10 + '0';
src /= 10;
}
-- k;
while ( k >= 0 )
putc_unlocked( c[k --], stdout );
}
int main ()
{
putUI(2000);
}