#include <iostream>
#include <windows.h>
class Asc
{
private:
char word;
int num;
public:
Asc (char wrd =' ');
Asc (int nu = 0);
~Asc();
void CharToAsc (void) const;
void AscToChar (void) const;
};
Asc::Asc (char wrd)
{
word = wrd;
}
Asc::Asc (int nu)
{
num = nu;
}
Asc::~Asc()
{
}
void Asc::CharToAsc (void) const
{
if ((int)word >= 33)
{
system ("cls");
std::cout << "=========================\n";
std::cout << word << " 对应ASCII码是:";
}
std::cout << " 对应ASCII码是:";
std::cout << (int)word << std::endl;
std::cout << "=========================\n";
}
void Asc::AscToChar (void) const
{
using std::cout;
system ("cls");
cout << "=========================\n";
cout << num << "对应字符是:";
switch (num)
{
case 0: cout << "(^@)"; break;
case 1: cout << "(^A)"; break;
case 2: cout << "(^B)"; break;
case 3: cout << "(^C)"; break;
case 4: cout << "(^D)"; break;
case 5: cout << "(^E)"; break;
case 6: cout << "(^F)"; break;
case 7: cout << "(^G(振铃))"; break;
case 8: cout << "(^H(退格))"; break;
case 9: cout << "(^i, tab(水平制表符))"; break;
case 10: cout << "(^J)\\n(换行符)"; break;
case 11: cout << "(^K(垂直制表符))"; break;
case 12: cout << "(^L)"; break;
case 13: cout << "(^M(回车))"; break;
case 14: cout << "(^N)"; break;
case 15: cout << "(^O)"; break;
case 16: cout << "(^P)"; break;
case 17: cout << "(^Q)"; break;
case 18: cout << "(^R)"; break;
case 19: cout << "(^S)"; break;
case 20: cout << "(^T)"; break;
case 21: cout << "(^U)"; break;
case 22: cout << "(^V)"; break;
case 23: cout << "(^W)"; break;
case 24: cout << "(^X)"; break;
case 25: cout << "(^Y)"; break;
case 26: cout << "(^Z)"; break;
case 27: cout << "(^[, Esc)"; break;
case 28: cout << "(^\\)"; break;
case 29: cout << "(^])"; break;
case 30: cout << "(^^)"; break;
case 31: cout << "(^_)"; break;
case 32: cout << "(空格)"; break;
case 127: cout << "(Del)"; break;
}
cout << (char)num << std::endl;
cout << "=========================\n";
}
void ShowMenu (void);
char choose (void);
int main()
{
using namespace std;
ShowMenu();
char ch;
int num;
while ((ch = choose()) != 'q')
{
if (ch == 'a')
{
cout << "输入一个字符(如字母a):\n";
while(cin.get(ch))
{
fflush(stdin);
Asc word(ch);
word.CharToAsc();
if (ch == 'q')
break;
cout << "\n再次输入一个字符(输入字母q返回上一级):\n";
}
}
else
{
cout << "输入一个小于128的ASCII码(如65):\n";
while (cin >> num)
{
Asc word(num);
word.AscToChar();
cout << "再次输入一个ACCII码(输入字母q返回上一级):\n";
}
cin.clear(); // 将流状态设置为0
fflush (stdin);
}
system("cls");
cout << "q 对应的ASCII码是113\n";
ShowMenu();
}
cout << "谢谢使用O(∩_∩)O.. 按回车键退出.\n";
cin.get();
return 0;
}
void ShowMenu (void)
{
std::cout << "**************************************************************\n";
std::cout << "* a) 字符 ---> ASCII码 b) ASCII码 ---> 字符 *\n";
std::cout << "* q) 退出 *\n";
std::cout << "**************************************************************\n";
}
char choose (void)
{
char ch;
std::cin.get(ch);
while (std::cin.get() != '\n')
continue;
system ("cls"); // 清屏
return ch;
}
编译器: VC6.0 嘿嘿~~