c语言输入密码以*的形式,C语言中如何实现输入密码?(在输入时显示为*号.)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

看下 GtkEntry 的源码不就知道了。。。

gtk_entry_get_display_text

...

if (end_pos <= start_pos)

return g_strdup ("");

else if (priv->visible)

{

start = g_utf8_offset_to_pointer (text, start_pos);

end = g_utf8_offset_to_pointer (start, end_pos - start_pos);

return g_strndup (start, end - start);

}

else

{

str = g_string_sized_new (length * 2);

/* Figure out what our invisible char is and encode it */

if (!priv->invisible_char)

invisible_char = priv->invisible_char_set ? ' ' : '*';

else

invisible_char = priv->invisible_char;

char_len = g_unichar_to_utf8 (invisible_char, char_str);

/*

* Add hidden characters for each character in the text

* buffer. If there is a password hint, then keep that

* character visible.

*/

password_hint = g_object_get_qdata (G_OBJECT (entry), quark_password_hint);

for (i = start_pos; i < end_pos; ++i)

{

if (password_hint && i == password_hint->position)

{

start = g_utf8_offset_to_pointer (text, i);

g_string_append_len (str, start, g_utf8_next_char (start) - start);

}

else

{

g_string_append_len (str, char_str, char_len);

}

}

return g_string_free (str, FALSE);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值