e,刚刚改了一下,对于多少位(小于9),都能输出了,。
e,原来是c语言论坛,不过没关系,思路是一样的,。
e,原来是c语言论坛,不过没关系,思路是一样的,。

程序代码:
// 系统时间测试程序
#include <Windows.h>
#include <conio.h>
#include <Screen.h>
// 全局变量
Screen screen;
// 函数声明
VOID ShowDigit(const WCHAR digit, COORD location);
// 程序主入口
VOID wmain(VOID)
{
screen.SetTitle(L"系统时间测试程序");
screen.SetTextAttribute(FOREGROUND_WHITE | BACKGROUND_BLUE).Cls();
screen.SetCursorVisible(false);
screen.MoveCursor(0, screen.GetRows() - 1).WriteText(L"====按Esc键停止====");
while (!(_kbhit() && (screen.ReadKey() == screen.K_ESC)))
{
static WORD second(-1);
SYSTEMTIME st;
GetLocalTime(&st);
if (st.wSecond != second)
{
COORD location = {5, 2};
WCHAR buffer[50];
swprintf_s(buffer, L"%4d-%02d-%02d %02d:%02d:%02d", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
for (size_t i = 0; i < wcslen(buffer); ++i)
{
ShowDigit(buffer[i], location);
location.X += 3;
}
second = st.wSecond;
}
}
screen.SetCursorVisible(true);
}
// 显示LED数字
VOID ShowDigit(const WCHAR digit, COORD location)
{
const WORD attr(screen.GetTextAttribute());
const WCHAR character = L' ';
switch (digit)
{
case '-':
screen.MoveCursor(location).SetTextAttribute(attr | COMMON_LVB_UNDERSCORE).WriteText(character);
break;
case ':':
screen.MoveCursor(location).SetTextAttribute(attr).WriteText(L'·');
++location.Y;
screen.MoveCursor(location).SetTextAttribute(attr).WriteText(L'·');
break;
case '0':
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_LVERTICAL | COMMON_LVB_GRID_HORIZONTAL).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_GRID_RVERTICAL).WriteText(character);
++location.Y;
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_LVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_RVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
break;
case '1':
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_RVERTICAL).WriteText(character);
screen.SetTextAttribute(attr).WriteText(character);
++location.Y;
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_RVERTICAL).WriteText(character);
screen.SetTextAttribute(attr).WriteText(character);
break;
case '2':
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_UNDERSCORE | COMMON_LVB_GRID_RVERTICAL).WriteText(character);
++location.Y;
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_LVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_UNDERSCORE).WriteText(character);
break;
case '3':
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_UNDERSCORE | COMMON_LVB_GRID_RVERTICAL).WriteText(character);
++location.Y;
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_UNDERSCORE | COMMON_LVB_GRID_RVERTICAL).WriteText(character);
break;
case '4':
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_LVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_UNDERSCORE | COMMON_LVB_GRID_RVERTICAL).WriteText(character);
++location.Y;
screen.MoveCursor(location);
screen.SetTextAttribute(attr).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_RVERTICAL).WriteText(character);
break;
case '5':
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_LVERTICAL | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_UNDERSCORE).WriteText(character);
++location.Y;
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_RVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
break;
case '6':
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_LVERTICAL | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_UNDERSCORE).WriteText(character);
++location.Y;
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_LVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_RVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
break;
case '7':
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_HORIZONTAL).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_GRID_RVERTICAL).WriteText(character);
++location.Y;
screen.MoveCursor(location);
screen.SetTextAttribute(attr).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_RVERTICAL).WriteText(character);
break;
case '8':
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_LVERTICAL | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_GRID_RVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
++location.Y;
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_LVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_RVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
break;
case '9':
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_LVERTICAL | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_GRID_RVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
++location.Y;
screen.MoveCursor(location);
screen.SetTextAttribute(attr | COMMON_LVB_UNDERSCORE).WriteText(character);
screen.SetTextAttribute(attr | COMMON_LVB_GRID_RVERTICAL | COMMON_LVB_UNDERSCORE).WriteText(character);
break;
}
screen.SetTextAttribute(attr);
}

程序代码:#include<stdio.h>
void print(int a)
{
const int map[10] = {
0x75557, 0x44444, 0x71747, 0x74747, 0x44755,
0x74717, 0x75717, 0x44447, 0x75757, 0x74757};
int i, j, k, len, t;
for(len = t = 0; a; len++, t *= 10, t += a % 10, a /= 10);
if(!len) len = 1;
a = t;
for(i = 0; i < 5; i++, putchar('\n'))
for(t = a, k = len; k--; t /= 10)
for(j = 0; j < 4; putchar((((map[t % 10] >> (i * 4)) >> j++) & 1) ? 'O' : ' '));
}
int main()
{
int a;
scanf("%d", &a);
print(a);
return 0;
}
