Using the standard I/O classes

The filedescriptor class provides methods for generic input and output to file descriptors. Rudiments pre-defines three instances: stdinput, stdoutput and stderror, which provide access to standard input, standard output and standard error.

As these classes are ultimately instances of the filedescriptor class, many I/O methods are available, but the most commonly used are read(), write() and printf(). The printf() method features all of the formatting capabilities of the standard C printf() function.

#include <rudiments/stdio.h>

int main(int argc, const char **argv) {

        // standard output...
        stdoutput.write("This line is written to standard output.\n");
        stdoutput.write("Fully functional printf is also available: ");
        stdoutput.printf("%s%c%05d\n""hello",'c',25);
        stdoutput.write('\n');


        // standard error...
        stderror.write("This line is written to standard error.\n");
        stderror.write("Fully functional printf is also available: ");
        stderror.printf("%s%c%05d\n""hello",'c',25);
        stderror.write('\n');


        // standard input...
        stdoutput.write("Type something and hit return...\n");
        char    input[1024];
        ssize_t count=stdinput.read(input,sizeof(input));
        input[count]='\0';
        stdoutput.printf("You typed: %s\n",input);
}