c显示数字的LED(数字转LED)
实现这么一个函数:传入一个int值,在屏幕输出类似LED显示屏效果的字母拼图,例如:
输入1234567890,输出:

请注意每个字符的固定宽度和高度,两个数字间保留一个空格。
函数名:void LEDprint(int num);
此题是表驱动方法的典型应用。
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
//每个字符宽度为5,长度为7
string LEDarray[][]={
{" --- ", //
"| |",
"| |",
"| |",
"| |",
"| |",
" --- "}, {" ", //
" |",
" |",
" ",
" |",
" |",
" "}, {" --- ", //
" |",
" |",
" --- ",
"| ",
"| ",
" --- "}, {" --- ",
" |",
" |",
" --- ",
" |",
" |",
" --- "}, {" ",
"| |",
"| |",
" --- ",
" |",
" |",
" "}, {" --- ",
"| ",
"| ",
" --- ",
" |",
" |",
" --- "}, {" --- ",
"| ",
"| ",
" --- ",
"| |",
"| |",
" --- "}, {" --- ",
" |",
" |",
" ",
" |",
" |",
" "}, {" --- ",
"| |",
"| |",
" --- ",
"| |",
"| |",
" --- "}, {" --- ",
"| |",
"| |",
" --- ",
" |",
" |",
" --- "}
}; void LEDPrint(int num)
{
if(num<)
return;
char str[]={'\0'};
itoa(num,str,); int len=strlen(str);
string (*LED)[]=new string[len][]; for(int i=;i<len;i++)
{
int index=str[i]-'';//重点在这里
for(int j=;j<;j++)
{
LED[i][j]=LEDarray[index][j];
}
} for(int j=;j<;j++)
{
for(int i=;i<len;i++)
{
cout<<LED[i][j]<<" ";
}
cout<<endl;
}
/*
这里不能delete,因为后面的7,不能new出来的,
for(int i=0;i<len;i++)
delete[] LED[i]; */
delete[] LED;
} int main()
{
cout<<"input a number"<<endl;
int num;
while(cin>>num)
{
LEDPrint(num);
}
cout<<endl<<endl;
}
唯一值得注意的地方是delete:
只需delete[] LED即可。后面的7不是new出来的,如果delete程序会运行错误。
还有一点
还有一点,char的大小为什么是:
char str[11]
因为int类型的最大的只有10位,我们开辟11就够了。
参考:http://blog.chinaunix.net/uid-27034868-id-3811600.html
c显示数字的LED(数字转LED)的更多相关文章
- 一个简易的 LED 数字时钟实现方法
这个应该是已经有很多人做过的东西,我应该只是算手痒,想写一下,所以,花了点时间折腾了这个,顺便把 Dark Mode 的处理也加上了. 首先可以很明确的一点,这个真没技术含量存在,只是需要点耐心. L ...
- WPF中StringFormat的用法--显示特定位数的数字
原文:WPF中StringFormat的用法--显示特定位数的数字 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huangli321456/art ...
- Oracle 把秒转成时分秒格式(hh24:mm:ss);检测字符串是否是数字;字符串转换为数字
不说废话,贴代码: CREATE OR REPLACE FUNCTION to_time(sec IN NUMBER) RETURN VARCHAR2 IS /*把秒转成时分秒格式 auth lzpo ...
- php实现数字格式化,数字每三位加逗号的功能函数
原地址:http://www.jb51.net/article/73781.htm php实现数字格式化,数字每三位加逗号的功能函数,具体代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 ...
- oracle 非数字型转数字型
原文:oracle 非数字型转数字型 oracle中如果一个字段内容不全是数字型 可以通过以下方式过滤 to_number(substr(translate(a.vital_signs_cvalues ...
- 几个有用的javascript(日期比较,数字验证,数字和汉字长度计算)
1:日期大Js代码 //人员失效职位日期是否小于组织失效日期 function perDateInvalidate(){ var flag = true; //组织失效日期 var orgDate = ...
- Perl字符集[\d\D]表示任何字符(所有数字和非数字,包括换行符),“.”表示除了换行符以外的所有字符。
Perl字符集[\d\D]表示任何字符(所有数字和非数字,包括换行符),“.”表示除了换行符以外的所有字符.
- JAVA处理数字与中文数字互转(最大处理数字不超过万兆即:9999999999999999.9999)
package practice; import java.util.Arrays; /** * 数字与中文数字互转(最大处理数字不超过万兆即:9999999999999999.9999) * @au ...
- Commercial Lighting: LED Ceiling Light, LED Ceiling Light
Unlike ceiling lamps, floor lamps, chandeliers, lamps that can sometimes rely on "faces", ...
- C++中使用sstream进行类型转换(数字字符串转数字、数字转数字字符串)
1.sstream知识 sstream即字符串流.在使用字符串流sstream时,需要先引入相应的头文件 "#include <sstream>" 基本操作 // 引入 ...
随机推荐
- 苹果 App 转移图文详解
目前公司在做App转移操作,在网上搜索相关资料加上自己的亲自操作,整理成一个文档,希望能给你提供帮助. 如转载请添加出处. 此文章只是为了记录一个Apple ID下的APP,转移到另外一个Apple ...
- iOS中Block介绍 基础
ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发.讨论范围:block的使用,内存管理,内部实现.不包含的内容:gc arc下的block内存,block在c++中 ...
- Robolectric 探索之路
layout: post title: Roboletric探索之路,从抗拒到依赖 description: Roboletric Android Unit Testing category: blo ...
- zoj 2376 Ants
#include<stdio.h> #include<stdlib.h> ]; int main(void) { int t,n,m,i,len,max,min,mx,mi; ...
- 小猪猪逆袭成博士之C++基础篇(一)数据精度、强制类型转换、变量命名规则
小猪猪逆袭成博士之C++基础篇(一) 关键词: 数据精度.强制类型转换.变量命名规则 综述: 1.大多数编程语言通过两种方式来进一步补充其特征:一是赋予程序员自定义数据类型的权利(C++中的类):二是 ...
- 重定向输入输出流--freopen
freopen是被包含于C标准库头文件<stdio.h>中的一个函数,用于重定向输入输出流.该函数可以在不改变代码原貌的情况下改变输入输出环境. C99函数声明: FILE *freope ...
- monkeyrunner学习--手机按键
按下HOME键 device.press('KEYCODE_HOME','DOWN_AND_UP') 按下BACK键 device.press('KEYCODE_BACK','DOWN_AND_UP' ...
- widget intent重复问题
今天在做android widget时发现点击任意widget时只会更新最后一个widget 原来是requestCode的问题 Intent intent = new Intent(WidgetPr ...
- setTimeout 虚假的“异步”
看这篇http://www.laruence.com/2009/09/23/1089.html 所以实际上 setTimeout更像是任务按照队列执行 经过setTimeout设置后任务放在了队尾 ...
- 射频识别技术漫谈(25)——Felica简介
Felica是SONY公司开发的射频识别技术,该技术使用的载波频率与ISO14443A和ISO14443B一样,都是13.56MHz,所以有人把它称为ISO14443C,但SONY并没有正式接受这样的 ...