免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1658 | 回复: 3
打印 上一主题 下一主题

SOS!!!对一字符串的进行文件操作问题. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-12 14:00 |只看该作者 |倒序浏览
字符串如下:
[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);
        }

论坛徽章:
0
2 [报告]
发表于 2004-06-12 19:22 |只看该作者

SOS!!!对一字符串的进行文件操作问题.

9.21 彩?||呐费用
上面这段中间那是什么控制符吧?这样可以就结束啦!
tom325 该用户已被删除
3 [报告]
发表于 2004-06-12 20:15 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2004-06-13 14:17 |只看该作者

SOS!!!对一字符串的进行文件操作问题.

输出程序中变量 rl 的值,看它与你实际的字符串的长度是否吻合。如果不一致,就按照楼上告诉你的方法去做。

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP