免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1806 | 回复: 5
打印 上一主题 下一主题

新手请教:字符串输入及校验问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-18 21:34 |只看该作者 |倒序浏览

不好意思,请教各位大虾一个小菜问题:
想实现下面功能,如何实现?
有一口令文件:a.txt.内容如下
ID号(6位)|身份证号(18位)|口令(6位)|
屏幕显示输入ID号,身份证号,口令(要求用*****回显示屏幕上),然后到该文本中验证口令正确否.如何编写该程序.
俺对C实在不熟,看了大半天好不容易写了个小程序,可错误多多,实在不好意思贴出来.
俺在这里谢谢大家了.

论坛徽章:
0
2 [报告]
发表于 2003-06-18 21:43 |只看该作者

新手请教:字符串输入及校验问题?

论坛以前有过许多讨论
一种是使用ncurses的getch
然后用户每输入一个字符屏幕回显一个*

这种比较简单

如果你对c不熟的话那么还是先不实现回显*吧

先实现用户输入口令然后认证的功能

论坛徽章:
0
3 [报告]
发表于 2003-06-18 22:10 |只看该作者

新手请教:字符串输入及校验问题?

谢谢无双,我这去查查以前的帖子看!好难找啊,我是翻完了几乎这里的帖子才敢问的,请再麻烦看看我这个程序错在哪里?编译通过了,但是执行起来老CORE DUMP
#include <stdio.h>;
#define myfile "YY.DAT"
#define user struct info
main ()
{
    char  id_num[6],iden_num[18],in_code[6];
    FILE                 *fp;
    int   result1,result2,result3,ok=0;
    struct info {
            char id_num[6];
            char fg1;
            char iden_num[18];
            char fg2;
            char in_code[6];
            char fg3;
            } user1 ;
    printf("\n";
    printf("请输入ID号:";
    scanf("%s",id_num);
    printf("请输入身份证号:";
    scanf("%s",iden_num);
    printf("请输入密码:";  /*这里未能实现***显示,但不想用系统的getpass,因它不回显,请赐教 */
    scanf("%s",in_code);
        if( ( fp=fopen( myfile,"r" ) )==NULL )
     { printf( "Can not open file: %s\n",myfile ); exit(-1);}
    while ( !feof (fp) )
   {  fread ( &user1,sizeof(user),1,fp);
      result1 = strcmp (user1.id_num,id_num,6);
      result2 = strcmp (user1.iden_num,iden_number,1;
       if ( ( result1 == 0 ) && ( result2 == 0 ) )
      { result3 = strcmp (user1.in_code,in_code,6);
        if ( result3 == 0  )
                {printf ("your passwd is right \n"; ok=1;}
        else
               {printf ("your passwd is wrong \n";}
       break;
       }
       if (  feof(fp) && ok == 0   )
       {printf(" can not find such id\n"; break;}
}
fclose(fp);
}

论坛徽章:
0
4 [报告]
发表于 2003-06-18 22:15 |只看该作者

新手请教:字符串输入及校验问题?

使用gdb调试看
执行到哪一步co re  dump的

getpass是系统的吗我这没有unix环境
所以没法看man

你看它的man 可以大概了解什么用的

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-06-19 13:07 |只看该作者

新手请教:字符串输入及校验问题?

char *getpass (prompt)是一个函数。

core dump的原因自己调试一下。

论坛徽章:
0
6 [报告]
发表于 2003-06-19 18:23 |只看该作者

新手请教:字符串输入及校验问题?

谢谢大家指导,俺知道错误在哪里了,是字符串超过声明的长度 !谢谢大家!我要努力再努力!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP