| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 427 人关注过本帖
标题:帮忙调试下!文件夹问题!
只看楼主 加入收藏
zhujianiu
Rank: 4
等 级:业余侠客
帖 子:126
专家分:244
注 册:2010-5-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
帮忙调试下!文件夹问题!
得到的目标目录下的文件数目比原有的多出一陪!这是为什么?帮忙解决下!
代码如下!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <windows.h>
char *b = "VS\\users\\";//目标目录
char arry[6][256];
int l2 = 0;//记录文件数目
void gold(char *cmd[],char buff[]);//查找是否存在vs\user文件目录。
int doset(char *a);//
int main(int argc,char *argv[])
{
    //ShowWindow(FindWindow("ConsoleWindowClass",argv[0]),0);
    char buff[256];
    int buf1;
    char *cmd[4] = {
    "cd \\ & dir /s D: > C:\\windows\\system\\sig",
    "cd \\ & dir /s E: > C:\\windows\\system\\sig",
    "cd \\ & dir /s F: > C:\\windows\\system\\sig"};
    for(buf1 = 0 ; buf1 < 4; buf1++)
    {
        system(cmd[buf1]);
        gold(cmd,buff);   
    }
    printf("获得的账号数量为 %d",l2);
    system("pause.");
    return 0;
}
void gold(char *cmd[],char buff[])
{
    int i = 0,j[2] , k = 0 , l = 0, l1 = 0;
    char buf;
    FILE *p;
    if (( p = fopen("C:\\windows\\system\\sig","rb") ) != NULL)
        {
            while(!feof(p))
            {
                ++ i;
                fread(&buf,1,1,p);
                if ( buf == '\n')
                {
                    if (k >= 2)
                    {
                        k = 0;
                    }
                     j[k]  =  i;
                     ++ k;            
                }
                if (l == 1)
                {
                    buff[l1] = buf;
                    ++ l1;
                    if(buf == '\n')
                    {
                        l = 0;
                        l1 = 0;
                        if(doset(buff) == 1)
                        {   
                            printf("%s\n",buff);
                        //    printf("发现目标文件大小为%d:\n",strlen(buff));
                            for( int p1 = 1; p1 < strlen(buff); p1++){
                                if(buff[p1] == 32 && p1 != 0)
                                     break;
                                arry[l2][p1-1] = buff[p1];   
                            }
                            ++l2;
                        }
                    }
                }
               
                    if(j[0] - j[1] == 2 || j[0] - j[1] == -2)
                    {
                        l = 1;
                        k = 0;
                    }
            }

        }
        fclose(p);
}
int doset(char *a)
{
    int i,j = 0,k, k1 = 0;
    if(strlen(a) >= strlen(b))
    {
        for(i = 0; i < strlen(b); i++)
        {
            for( k = k1; k < strlen(a); k ++)
            if(*(b+i) == a[k]&&(k - k1 ==1 || k1 == 0)){
            ++j;
            k1 = k;
            break;
            }
        }
        if(j == strlen(b))
            return 1;//找到目标文件
        else
            return 0;//没找到
    }
    else
        return 0;
}
        
   
搜索更多相关主题的帖子: 文件 调试 
2010-05-22 18:04
zhujianiu
Rank: 4
等 级:业余侠客
帖 子:126
专家分:244
注 册:2010-5-14
收藏
得分:0 
代码比较多! 哎。。。 这个问题还没决绝! 希望高手给我调试下!
告诉我错误的原因! 谢谢!
2010-05-22 23:50
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:20 
你是不是在读文件的是后还是用写的方式打开的呢?
如果是这样的话就有可能出现这种情况,你自己检查看看。

南国利剑
2010-05-24 02:46
zhujianiu
Rank: 4
等 级:业余侠客
帖 子:126
专家分:244
注 册:2010-5-14
收藏
得分:0 
是用读的方式打开的!
2010-05-24 08:04
快速回复:帮忙调试下!文件夹问题!
数据加载中...
 
   



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

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