亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1434 | 回復: 2
打印 上一主題 下一主題

請高手幫我看看這個問題 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-07-10 23:44 |只看該作者 |倒序瀏覽
源代碼如下。需要實現(xiàn)的功能就是一個接口文件某個字段要加密
比如原始接口文件1.avl
1111&33333&44444&
2222&44444&55555&
通過加密后encrypt_interface 1.avl f.avl 1
輸出的接口文件始終從第二行開始要多一個“&”出來。不曉得究竟是怎么回事。希望大家?guī)兔纯?br /> f.avl
|d|d|d|d&33333&44444&
&|e|e|e|e&44444&55555&

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define         MAXLEN                        512
#define         MAXFLD                        100
#define         MAX_NAMELEN                    128
#define         RECORD_LENGTH                 1024
#define         TIME_LENGTH                 32
#define         MAX_THREAD                 1024

Encrypt(char* cSrc,char* cDest)
{
char c;
int i,h,l,j=0;
for (i=0;i<(int)strlen(cSrc);i++)
{
c=cSrc[i];
h=(c>>4)&0xf;
l=c&0xf;
cDest[j]=h+'y';
cDest[j+1]=l+'c';
j+=2;
}
cDest[j]='\0';
return 0;
}
int main(int argc, char *argv[])
{
   char input[100];
   char output[100];
   char domain[10];
   FILE *fp,*ofp; //定義文件指針
   //判斷輸入?yún)?shù)是否為三個
   if (argc == 4) {
   strcpy (input, argv[1]);
   strcpy (output,  argv[2]);
   strcpy (domain,  argv[3]);
   //輸出提示處理參數(shù)
   printf("原始接口為:%s\n",input);
   printf("輸出接口為:%s\n",output);
   printf("加密字段為:%s\n",domain);
   
   if((fp=fopen64(input,"r"))==NULL)//判斷是否成功打開源文件,執(zhí)行讀取操作
        {
                printf("%s 文件打開錯誤\n",input);
                exit(0);
        }
        char lineBuff[4000];
        int i=0;
        while(fgets(lineBuff, 4000,fp) != NULL)
{
        i++;
        //用strtok()函數(shù)提取分隔符隔開的每個字符串并用加密函數(shù)處理
        //定義ii初始化用來接受有多少個&分割域
        int ii=0;
        int num = atoi(domain);
        char* token = strtok( lineBuff, ",-&");
                        while( token != NULL )
                                   {
                                /* 處理當前取到的域*/
                                        ii++;
                                        if ( ii == num ) {
                                                        printf( "第%d加密域為:%s \n",ii,token );
                                                        char dest1[128]="\0";
                                                        Encrypt(token,dest1);
                                                        printf("第%d分割域加密后的字符串為:%s\n",ii,dest1);
                                                       
                                                                if((ofp=fopen64(output,"at+"))==NULL)//判斷是否成功打開源文件,執(zhí)行讀取操作
                                                                        {
                                                                        printf("%s 文件打開錯誤\n",output);
                                                                    exit(0);
                                                                        }
                                                                        fprintf(ofp,"%s&",dest1);
                                                                        fflush(ofp);
                                                                        fclose(ofp);//關(guān)閉文件
                                                       
                                                }
                                        else {
                                                        printf( "第%d分割域為:%s \n",ii,token );
                                                                if((ofp=fopen64(output,"at+"))==NULL)//判斷是否成功打開源文件,執(zhí)行讀取操作
                                                                        {
                                                                        printf("%s 文件打開錯誤\n",output);
                                                                    exit(0);
                                                                        }
                                                                        fprintf(ofp,"%s&",token);
                                                                        fflush(ofp);
                                                                        fclose(ofp);//關(guān)閉文件
                                                }
                                        /* 處理下一個 */
                                        token = strtok( NULL, ",-&");
    }


        //printf("第%d行內(nèi)容為:%s\n",i,lineBuff);

}       
   fclose(fp);//關(guān)閉文件

   } else {
      printf ("使用方法: %s  原始接口 加密輸出接口 加密字段\n",argv[0]);
   } // end if
   
   return 0;
}

論壇徽章:
3
CU大;照
日期:2013-03-13 15:32:35CU大;照
日期:2013-03-13 15:38:15CU大;照
日期:2013-03-13 15:38:52
2 [報告]
發(fā)表于 2012-07-11 16:39 |只看該作者
每一行記錄結(jié)尾的換行符號被strtok當作數(shù)據(jù)取出,并寫入文件導致。

論壇徽章:
3
CU大;照
日期:2013-03-13 15:32:35CU大;照
日期:2013-03-13 15:38:15CU大;照
日期:2013-03-13 15:38:52
3 [報告]
發(fā)表于 2012-07-11 16:42 |只看該作者
建議你別在循環(huán)里打開文件寫入關(guān)閉, 開始的地方就打開,轉(zhuǎn)換完成后一起關(guān)閉。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP