Chinaunix

标题: SOS!!!对一字符串的进行文件操作问题. [打印本页]

作者: jameschu    时间: 2004-06-12 14:00
标题: SOS!!!对一字符串的进行文件操作问题.
字符串如下:
[AAAAAAA      217.00  2200404      2004050520040601      134.00陈俊                                     16      通话费       24.60      长途费        1.54    IP长途费        0.30  梦网短信费       16.20  点对点短信       59.85    GPRS费用        9.21    彩?||呐费用       71.00      短信呼        1.00     梦网WAP        6.00    补退费用     -150.00  个人套餐费        2.00  放心打套餐       58.00    短信包月       30.00    上次截零        0.55    本次截零        0.53      违约金        4.28200405      20040605200||?0701       83.00陈俊                                     16      通话费        8.50      长途费        0.70  梦网短信费        7.50  点对点短信       45.60    GPRS费用        4.17  IP直通车费       10.00    彩信费用       49.00      短信呼        1.00    |||?梦网WAP        6.00    来电显示        5.00    补退费用     -150.00  彩铃月租费        5.00  个人套餐费        2.00  放心打套餐       58.00    短信包月       30.00    上次截零     ], Len=[964]
现要将217.00后面的字符串都打进文件.实际上只打进去238个字符.---大家能告诉我WHY?
[  2200404      2004050520040601      134.00陈俊                                     16      通话费       24.60      长途费        1.54    IP长途费        0.30  梦网短信费       16.20  点对点短信       59.85    GPRS费用        9.21    彩?]


代码如下:

char outBuf[]=[AAAAAAA      217.00  2200404      2004050520040601      134.00陈俊                                     16      通话费       24.60      长途费        1.54    IP长途费        0.30  梦网短信费       16.20  点对点短信       59.85    GPRS费用        9.21    彩?||呐费用       71.00      短信呼        1.00     梦网WAP        6.00    补退费用     -150.00  个人套餐费        2.00  放心打套餐       58.00    短信包月       30.00    上次截零        0.55    本次截零        0.53      违约金        4.28200405      20040605200||?0701       83.00陈俊                                     16      通话费        8.50      长途费        0.70  梦网短信费        7.50  点对点短信       45.60    GPRS费用        4.17  IP直通车费       10.00    彩信费用       49.00      短信呼        1.00    |||?梦网WAP        6.00    来电显示        5.00    补退费用     -150.00  彩铃月租费        5.00  个人套餐费        2.00  放心打套餐       58.00    短信包月       30.00    上次截零     ],
        char tmp2[2048];
        char *q;
        char filename[80];
        int rl;
       
        rl=strlen(OutBuf);
        q = &OutBuf[0];
               
        memset(tmp2,0,sizeof(tmp2));
        memcpy(tmp2,q+19,rl-19);
                bms_trace("buf1=[%s]\n",tmp2);
                bms_trace("len[%d]\n",strlen(tmp2));
        sprintf(filename,"%s/tmp/%ld",getenv("HOME",bs->;trade_serial);
                        bms_trace("filename=[%s]\n",filename);
        fp=fopen(filename,"w";
        if(fp==NULL)
        {
                bs->;result = 1004;
                return(FAILURE);
        }
        else
        {
                if( fputs(tmp2,fp)!=0 )
                {
                                bs->;result = 1419;
                                fclose(fp);
                                return(FAILURE);
                }
                fclose(fp);
        }
作者: 邵林寺    时间: 2004-06-12 19:22
标题: SOS!!!对一字符串的进行文件操作问题.
9.21 彩?||呐费用
上面这段中间那是什么控制符吧?这样可以就结束啦!
作者: tom325    时间: 2004-06-12 20:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: whyglinux    时间: 2004-06-13 14:17
标题: SOS!!!对一字符串的进行文件操作问题.
输出程序中变量 rl 的值,看它与你实际的字符串的长度是否吻合。如果不一致,就按照楼上告诉你的方法去做。

你的这个字符串是从文件中拷贝过来的吧。由于原来的文件可能是一个二进制文件,所以你不能直接拷贝它的内容使用。你应该按照原来写这个文件的格式读出它的内容使用。或者把这些内容写成文本文件,这样的话你就可以直接把文件的内容拷贝到你的程序中使用了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2