| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 798 人关注过本帖
标题:一个简单的引用问题
取消只看楼主 加入收藏
yxieguodong
Rank: 1
来 自:广东湛江
等 级:新手上路
帖 子:17
专家分:8
注 册:2011-4-17
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:8 
一个简单的引用问题
我想实现密码输入时显示*,然后又能传回这个值
能通过编译,可是运行出错了,也不知道错在哪个地方


程序代码:
#include<iostream>
#include<string>
#include<conio.h>
using namespace std;
void mima(string& key)
{
    for(int i=0;i<15;i++)
    {
        char c;
        
        c = getch();
        if(c==13) 
        {
            c='\0';
            break;
        }
        
        else cout << '*';
        key[i]=c;
    }
}

int main()
{
    string a;
    mima(a);
    cout<<a;
    return 0;
}


[ 本帖最后由 yxieguodong 于 2011-4-17 23:32 编辑 ]
搜索更多相关主题的帖子: 密码 
2011-04-17 22:06
yxieguodong
Rank: 1
来 自:广东湛江
等 级:新手上路
帖 子:17
专家分:8
注 册:2011-4-17
收藏
得分:0 
回复 2楼 qq1023569223
好像是这么回事。那我怎么把这个值传回去呢,要用全局么
2011-04-17 23:26
yxieguodong
Rank: 1
来 自:广东湛江
等 级:新手上路
帖 子:17
专家分:8
注 册:2011-4-17
收藏
得分:0 
4楼 pangding
然后呢
2011-04-17 23:47
yxieguodong
Rank: 1
来 自:广东湛江
等 级:新手上路
帖 子:17
专家分:8
注 册:2011-4-17
收藏
得分:0 
以下是引用xishui777在2011-4-18 02:18:57的发言:

似似,看看是不是你想要的

对对,只是怎么把这个char数组和string比较呢
2011-04-18 12:53
yxieguodong
Rank: 1
来 自:广东湛江
等 级:新手上路
帖 子:17
专家分:8
注 册:2011-4-17
收藏
得分:0 
以下是引用xishui777在2011-4-18 02:18:57的发言:

似似,看看是不是你想要的

对对,只是怎么把这个char数组和string比较呢,重发了。。。要把char[]转换为string么
2011-04-18 12:53
yxieguodong
Rank: 1
来 自:广东湛江
等 级:新手上路
帖 子:17
专家分:8
注 册:2011-4-17
收藏
得分:0 
回复 10楼 yxieguodong
好像可以直接比较,运行通过了。两个char[]比较还出错了。。
2011-04-18 13:21
yxieguodong
Rank: 1
来 自:广东湛江
等 级:新手上路
帖 子:17
专家分:8
注 册:2011-4-17
收藏
得分:0 
回复 13楼 ucyan
学习了,谢谢大家了
2011-04-18 23:42
yxieguodong
Rank: 1
来 自:广东湛江
等 级:新手上路
帖 子:17
专家分:8
注 册:2011-4-17
收藏
得分:0 
以下是引用ucyan在2011-4-18 18:53:21的发言:

#include <conio.h>
#include <cctype>
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{
 char c;
 int i=0;
 string pas;
 while ((c=getch())!='\r')
  {
   if (c=='\b') {
      putch(c);
      putch(' ');
      putch(c);
      if (!pas.empty()) pas=pas.erase(pas.size()-1,1);
   }
   else if (isprint(c)){   
    putch('*');
    pas+=c;
   }
  }
 cout<<endl;
 cout<<pas<<endl;               
 return 0;
}
可以退格的星号输出~

我想通过调用怎么实现
2011-04-19 00:36
yxieguodong
Rank: 1
来 自:广东湛江
等 级:新手上路
帖 子:17
专家分:8
注 册:2011-4-17
收藏
得分:0 
以下是引用ucyan在2011-4-18 18:53:21的发言:

#include <conio.h>
#include <cctype>
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{
 char c;
 int i=0;
 string pas;
 while ((c=getch())!='\r')
  {
   if (c=='\b') {
      putch(c);
      putch(' ');
      putch(c);
      if (!pas.empty()) pas=pas.erase(pas.size()-1,1);
   }
   else if (isprint(c)){   
    putch('*');
    pas+=c;
   }
  }
 cout<<endl;
 cout<<pas<<endl;               
 return 0;
}
可以退格的星号输出~

我想通过调用怎么实现
2011-04-19 00:36
快速回复:一个简单的引用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013094 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved