| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 223 人关注过本帖
标题:下面这个程序是因为文件路径的问题么?????
只看楼主 加入收藏
Berrysun
Rank: 1
来 自:浙江中医药大学
等 级:新手上路
帖 子:22
专家分:0
注 册:2012-11-17
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:1 
下面这个程序是因为文件路径的问题么?????
程序代码:
#include <stdio.h>
#define FALSE 0
#define TRUE 1
#define MAX_BUF_LEN 1500
#define SOH 0x01
#define EOT 0x04
#define ESC 0x1B

typedef int Status;

typedef struct StuffingString{
    unsigned char buf[MAX_BUF_LEN];
    unsigned int len;
}*PStuffingString;

Status byte_stuffing(PStuffingString psin,PStuffingString psf){
    unsigned int i = 0;
    psf->len = 0;
    while(i<psin->len)
    {
        if(psin->buf[i]==SOH||psin->buf[i]==EOT||psin->buf[i]==ESC)
            psf->buf[psf->len++]=ESC;
        psf->buf[psf->len++]=psin->buf[i++];
    }
    return TRUE;
}

Status byte_unstuffing(PStuffingString psf,PStuffingString psd){
    unsigned int i = 0;
    psd->len = 0;
    while(i<psf->len)
    {
        if(psf->buf[i]==ESC)
        {
            i++;
            if(psf->buf[i]!= SOH && psf->buf[i]!= EOT && psf->buf[i]!= ESC)
                return FALSE;
        }
            psd->buf[psd->len++]=psf->buf[i++];
    }
    return TRUE;
}

Status input(char f[],PStuffingString psin){
    FILE *fp;
    psin->len = 0;
    if((fp = fopen(f,"r"))==NULL)
        return FALSE;
    while(fscanf(fp,"%2X",&psin->buf[psin->len++])!=EOF);
    psin->len--;
    if(fclose(fp))
        return FALSE;
    return TRUE;
}

Status output(char f[],PStuffingString psout){
    FILE *fp;
    unsigned int i = 0;
    if((fp = fopen(f,"w"))==NULL)
        return FALSE;
    while(i<psout->len)
    {
        if(psout->buf[i]<0x10)
            fprintf(fp,"0");
        fprintf(fp,"%0X",psout->buf[i++]);
    }
    if(fclose(fp))
        return FALSE;
    return TRUE;
}
void fun_01()
{
    StuffingString sin,sf,sd;
    if(input("C:\input.txt",&sin)==TRUE)
    {
        if(byte_stuffing(&sin,&sf)==TRUE)
        {
            output("C:\output_f.txt",&sf);
            if(byte_unstuffing(&sin,&sf)==TRUE)
            {
                output("C:\output_d.txt",&sd);
                printf("byte-stuffing/unstuffing successful!\n");
            }
        }
    }
}
void main ()
{
    fun_01();
}
这是一个用字节填充法解决透明传输的一个模拟。谁知道为什么运行没结果。。。。
input.txt文件里的内容是:
AC00013C5604201B76
搜索更多相关主题的帖子: 1500 
2012-12-05 21:09
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:20 
if(input("C:\input.txt",&sin)==TRUE)
楼主用两个反斜杠试试,一个是转义字符啊,

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-07 22:46
快速回复:下面这个程序是因为文件路径的问题么?????
数据加载中...
 
   



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

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