#include <iostream>
#include <iomanip> // For formatting output
using namespace std;
/*
* Program Description:
* This program displays the characters corresponding to ASCII codes 0 through 127.
* The output is formatted such that 16 characters are displayed on each line.
* It handles the boundary conditions and uses proper error checking.
* The ASCII codes range from 0 to 127 and are printed using a loop.
*/
int main( ) {
// Loop through ASCII codes from 0 to 127
int count = 0 ;
cout << "Displaying characters for ASCII codes 0 through 127:\n " ;
for ( int i = 0 ; i <= 127 ; i++ ) {
// Check if the ASCII code is printable. Codes below 32 are control characters.
if ( i < 32 ) {
cout << " " ; // Print a space for non-printable control characters
} else {
cout << char ( i) ; // Print the corresponding character for the ASCII code
}
// After printing 16 characters, go to the next line
count++ ;
if ( count == 16 ) {
cout << endl; // Move to the next line after 16 characters
count = 0 ; // Reset count for the next row
} else {
cout << " " ; // Add space between characters for better visibility
}
}
cout << "\n End of program." << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4gIC8vIEZvciBmb3JtYXR0aW5nIG91dHB1dAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8qCiAqIFByb2dyYW0gRGVzY3JpcHRpb246CiAqIFRoaXMgcHJvZ3JhbSBkaXNwbGF5cyB0aGUgY2hhcmFjdGVycyBjb3JyZXNwb25kaW5nIHRvIEFTQ0lJIGNvZGVzIDAgdGhyb3VnaCAxMjcuCiAqIFRoZSBvdXRwdXQgaXMgZm9ybWF0dGVkIHN1Y2ggdGhhdCAxNiBjaGFyYWN0ZXJzIGFyZSBkaXNwbGF5ZWQgb24gZWFjaCBsaW5lLgogKiBJdCBoYW5kbGVzIHRoZSBib3VuZGFyeSBjb25kaXRpb25zIGFuZCB1c2VzIHByb3BlciBlcnJvciBjaGVja2luZy4KICogVGhlIEFTQ0lJIGNvZGVzIHJhbmdlIGZyb20gMCB0byAxMjcgYW5kIGFyZSBwcmludGVkIHVzaW5nIGEgbG9vcC4KICovCgppbnQgbWFpbigpIHsKICAgIC8vIExvb3AgdGhyb3VnaCBBU0NJSSBjb2RlcyBmcm9tIDAgdG8gMTI3CiAgICBpbnQgY291bnQgPSAwOwogICAgCiAgICBjb3V0IDw8ICJEaXNwbGF5aW5nIGNoYXJhY3RlcnMgZm9yIEFTQ0lJIGNvZGVzIDAgdGhyb3VnaCAxMjc6XG4iOwogICAgCiAgICBmb3IgKGludCBpID0gMDsgaSA8PSAxMjc7IGkrKykgewogICAgICAgIC8vIENoZWNrIGlmIHRoZSBBU0NJSSBjb2RlIGlzIHByaW50YWJsZS4gQ29kZXMgYmVsb3cgMzIgYXJlIGNvbnRyb2wgY2hhcmFjdGVycy4KICAgICAgICBpZiAoaSA8IDMyKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIiAiOyAgLy8gUHJpbnQgYSBzcGFjZSBmb3Igbm9uLXByaW50YWJsZSBjb250cm9sIGNoYXJhY3RlcnMKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb3V0IDw8IGNoYXIoaSk7ICAvLyBQcmludCB0aGUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIgZm9yIHRoZSBBU0NJSSBjb2RlCiAgICAgICAgfQoKICAgICAgICAvLyBBZnRlciBwcmludGluZyAxNiBjaGFyYWN0ZXJzLCBnbyB0byB0aGUgbmV4dCBsaW5lCiAgICAgICAgY291bnQrKzsKICAgICAgICBpZiAoY291bnQgPT0gMTYpIHsKICAgICAgICAgICAgY291dCA8PCBlbmRsOyAgLy8gTW92ZSB0byB0aGUgbmV4dCBsaW5lIGFmdGVyIDE2IGNoYXJhY3RlcnMKICAgICAgICAgICAgY291bnQgPSAwOyAgLy8gUmVzZXQgY291bnQgZm9yIHRoZSBuZXh0IHJvdwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvdXQgPDwgIiAiOyAgLy8gQWRkIHNwYWNlIGJldHdlZW4gY2hhcmFjdGVycyBmb3IgYmV0dGVyIHZpc2liaWxpdHkKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCAiXG5FbmQgb2YgcHJvZ3JhbS4iIDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQ==