SOURCE FILE: ex0805.cpp
//
// Example 8.5. This interactive program repeatedly asks
// the user for a character and prints its ASCII code.
//
#include <iostream.h>
const char YES = 'y';
const char NO = 'n';
char GetCharNewline(void);
int main(void)
{
char GetAnswer(void);
char in_char, // input character to encode
answer; // answer to continue?
cout << "Given a character, this program prints its ASCII code.\n";
do
{
cout << "Enter a character: ";
in_char = GetCharNewline();
cout << "The ASCII value of " << in_char << " is "
<< int(in_char) << ".\n";
answer = GetAnswer();
}
while (answer == YES);
return 0;
}
//
// Function to read and return a character and to move the
// input buffer pointer past the newline character
// Pre: none
// Post: An input character was returned and the buffer flushed.
//
char GetCharNewline(void)
{
char in_char;
cin.get(in_char);
if (in_char != '\n')
cin.ignore(256, '\n');
return in_char;
}
//
// Function to ask if user wishes to continue and to return
// the user's response after flushing the input buffer
// Pre: none
// Post: A y or an n was returned and the buffer flushed.
//
char GetAnswer(void)
{
char answer; // answer for wanting another code
do
{
cout << "\nDo you want to find another ASCII code? (y/n) ";
answer = GetCharNewline();
}
while ( !(answer == YES || answer == NO) );
return answer;
}