/* * Print a table with various formatting options * Format dates */ #include #include // create Serial stream ArduinoOutStream cout(Serial); //------------------------------------------------------------------------------ // print a table to demonstrate format manipulators void example(void) { const int max = 10; const int width = 4; for (int row = 1; row <= max; row++) { for (int col = 1; col <= max; col++) { cout << setw(width) << row * col << (col == max ? '\n' : ' '); } } cout << endl; } //------------------------------------------------------------------------------ // print a date as mm/dd/yyyy with zero fill in mm and dd // shows how to set and restore the fill character void showDate(int m, int d, int y) { // convert two digit year if (y < 100) y += 2000; // set new fill to '0' save old fill character char old = cout.fill('0'); // print date cout << setw(2) << m << '/' << setw(2) << d << '/' << y << endl; // restore old fill character cout.fill(old); } //------------------------------------------------------------------------------ void setup(void) { Serial.begin(9600); while (!Serial) {} // wait for Leonardo delay(2000); cout << endl << "default formatting" << endl; example(); cout << showpos << "showpos" << endl; example(); cout << hex << left << showbase << "hex left showbase" << endl; example(); cout << internal << setfill('0') << uppercase; cout << "uppercase hex internal showbase fill('0')" <