| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1891 人关注过本帖
标题:fgets函数使用疑惑
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:1 
fgets函数使用疑惑
是不是 fgets 函数把键盘中输入字符压入缓存,当出现回车才停止输入
比如下面的代码,一次性输入32个字符后按回车,则fgets(md5_string,9,stdin);一次9个字符,分别经过4次把刚才输入的32个字符分批赋给md5[i] 呢??
for(i=0;i<4;++i)
{
    fgets(md5_string,9,stdin);
    sscanf(md5_string, "%x",&md5[i]);
    //翻转字节序
    str = (unsigned char *)(md5 + i);               
    ch = str[0];
    str[0] = str[3];
    str[3] = ch;
    ch = str[1];
    str[1] = str[2];
    str[2] = ch;
}
搜索更多相关主题的帖子: sscanf fgets 函数 语法 
2008-08-31 11:23
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
printf("请输入32个字符的md5字符串:");
    
    for(i=0;i<4;++i)
    {
        fgets(md5_string,9,stdin);
        printf("\n%s",md5_string);
        sscanf(md5_string, "%x",&md5[i]);
        printf("\n%s",&md5[i]);
        //翻转字节序
        。。。。
    }
刚才做了个小试验,把 md5_string和&md5[i]输出来发现
1;fgets(md5_string,9,stdin);其实一次只接收8个输入字符,而不是9个
2:不知道格式化输入sscanf怎么操作,为什么第二次和第四次都是使用了相同的dddddddd输入
   即md5_string赋值相同,但是经sscanf(md5_string, "%x",&md5[i]);后&md5[i]内结果不一样??

base64.JPG (12.07 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2008-08-31 11:32
快速回复:fgets函数使用疑惑
数据加载中...
 
   



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

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