VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 757|回复: 5

在 VC++下要实现下面的功能怎么办?

[复制链接]

2

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-4 12:30:02 | 显示全部楼层 |阅读模式
// 对输入的数据进行验证
        if(m_old.GetLength()!=8)
        {
                MessageBox("请输入8位明文", "友情提示");
                return;
        }
        if(m_key.GetLength()!=8)
        {
                MessageBox("请输入8位密文", "友情提示");
                return;
        }
在明文输入中如果输入的数据未满8位以0补的处理。这样的代码怎么实现。我是新手,请各位大虾帮帮忙!
回复

使用道具 举报

1

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-5-18 12:00:01 | 显示全部楼层
int num = m_old.GetLength();
if(num!=8)
{
char cAdd[8-num] ;
int i ;
for(i=0 ; i<8-num ; i++)
    cAdd[i]='0' ;
CString str ;
str.Format("%c",cAdd) ;

m_old = m_old + str ;
//或m_old = str + m_old ;

//        MessageBox("请输入8位明文", "友情提示");
//        return;
}
回复

使用道具 举报

0

主题

32

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-5-18 12:15:01 | 显示全部楼层
>..明文输入中如果输入的数据未满8位以0补的处理。这样的代码怎么实现...
-------------------------------------------------
你是用 CString 是吧, 那可以用 Format 方法, 比如:
        int nABC = 2;
        CString strABC ;
        strABC.Format("%08d", nABC);
回复

使用道具 举报

2

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-5-23 23:00:01 | 显示全部楼层
刚刚在机子上试了一下 出现下面的错误 怎么处理?
E:\DESChecker\DESDlg.cpp(354) : error C2057: expected constant expression
E:\DESChecker\DESDlg.cpp(354) : error C2466: cannot allocate an array of constant size 0
E:\DESChecker\DESDlg.cpp(354) : error C2133: 'cAdd' : unknown size
执行 cl.exe 时出错.
回复

使用道具 举报

2

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-5-23 23:15:01 | 显示全部楼层
刚刚在机子上试了一下 出现下面的错误 怎么处理?
E:\DESChecker\DESDlg.cpp(354) : error C2057: expected constant expression
E:\DESChecker\DESDlg.cpp(354) : error C2466: cannot allocate an array of constant size 0
E:\DESChecker\DESDlg.cpp(354) : error C2133: 'cAdd' : unknown size
执行 cl.exe 时出错.
回复

使用道具 举报

1

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-8-5 00:30:01 | 显示全部楼层
sorry,有个地方写错了,应该是
int num = m_old.GetLength();
if(num!=8)
{
char cAdd[9] ;
int i ;
for(i=0 ; i<8-num ; i++)
    cAdd[i]='0' ;
cAdd[8-num]='\0';
CString str ;
str.Format("%s",cAdd) ;
//cAdd ;
//或m_old = m_old + str ;
m_old = str + m_old ;
//MessageBox("请输入8位明文", "友情提示");
//return;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表