| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 553 人关注过本帖
标题:求助
只看楼主 加入收藏
henankaifei717
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-4-20
收藏
 问题点数:0 回复次数:4 
求助
前几天遇到这样一道题,:要求用C编一个程序,这个程序能把可执行文件中的字符串找出来(算法是:从文件中一个一个地取文本字符直到出现不可打印的字符为一个串,然后再取下一个)
我怎么也想不出,有那位能帮帮忙,先谢谢了!
2008-04-21 12:44
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
这个很容易实现啊,LZ可参看以下程序.
/*主要思想:当当前行有可打印字符时,再遇到不可打印的字符就输出一回车符;
如果遇到可打印字符,则打印这个字条.*/
#include<stdio.h>
#include<conio.h>
int main()
{
    FILE *fp=fopen("TEST.EXE","r");
    char ch;
    char havecharflag=0;/*用于标志有没有在同一行可打印字符打印*/

    clrscr();
    if(fp==NULL)        /*判断有没有成功打开一个文件*/
    {
        printf("Can't open the file");
        getch();
        exit(0);
    }

    /*循环直到文件结束*/
    while(!feof(fp))
    {
        ch=fgetc(fp);
        /*可打印字符*/
        if(ch>=32 && ch<=126)
        {
            printf("%c",ch);
            /*标志当前行有可打印字符打印了*/
            if(!havecharflag)
                havecharflag=1;
        }
        else
        {
            /*标志当前行没有可打印字符打印*/
            if(havecharflag)
            {
                printf("\n");
                havecharflag=0;
            }
        }
    }
    getch();
    return 0;
}

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2008-04-21 14:26
hao0716
Rank: 4
等 级:业余侠客
威 望:1
帖 子:353
专家分:222
注 册:2006-4-11
收藏
得分:0 
ls的挺好用 不过我的vc不能编译 稍微修改下
#include<stdio.h>
#include<conio.h>

int main(int argc, char** argv)
{
    FILE *fp;
    char ch;
    char havecharflag=0;/*????±ê???????????????????ò??×?·??ò??*/

    if(argc != 2)
    {
        printf("Usage: argv[0] filename\n");
    }

    fp=fopen(argv[1],"r");
   

    if(fp==NULL)        /*???????????????ò??????????*/
    {
        printf("Can't open the file");
        getch();
        exit(0);
    }

    /*???·?±???????á??*/
    while(!feof(fp))
    {
        ch=fgetc(fp);
        /*???ò??×?·?*/
        if(ch>=32 && ch<=126)
        {
            printf("%c",ch);
            /*±ê???±?°???????ò??×?·??ò????*/
            if(!havecharflag)
                havecharflag=1;
        }
        else
        {
            /*±ê???±?°?????????ò??×?·??ò??*/
            if(havecharflag)
            {
              /* printf("\n"); */
                havecharflag=0;
            }
        }
    }
    getch();
    return 0;
}

2008-04-21 14:45
hao0716
Rank: 4
等 级:业余侠客
威 望:1
帖 子:353
专家分:222
注 册:2006-4-11
收藏
得分:0 
nnd 咋拷出来变乱码了 反正没改什么 可以直接在名字后面接路径的

2008-04-21 14:46
henankaifei717
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-4-20
收藏
得分:0 
终于找救星了
到谢谢各位!!!!!!!!
2008-04-26 23:29
快速回复:求助
数据加载中...
 
   



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

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