忘记密码   免费注册 查看新帖 | 论坛精华区
ChinaUnix.net
  平台论坛 博客 微博 读书 人才 精华 文库 自测 | 频道操作系统 开发 数据库 存储 服务器 网络 IT新闻 Linux 下载 Power用户组
最近访问板块 发新帖
查看: 2181 | 回复: 20

请教有关字符串输出问题 [复制链接]
更多

Rank: 1

帖子
99
主题
13
精华
0
可用积分
461
专家积分
0
在线时间
23 小时
注册时间
2008-08-30
最后登录
2011-07-14
论坛徽章:
0
发表于 2008-11-20 11:43:27 |显示全部楼层
在如下代码中,
    if((len = contenth->title_size) != 0) {
            printf("------------pos: %d\n", pos);
            printf("------------len: %d\n", len);
//            fflush(stdout);

            wstring = (uint16_t*)&hdr[pos];
            pos += len;
            if (pos > hdr_len)// goto len_err_out;

            return ;
            if ((string = get_ucs2str(wstring, len))) {
                // mp_msg(MSGT_HEADER,MSGL_V," Title: %s\n", string);

                //demux_info_add(demuxer, "name", string);

                printf("Title: %s\n", string);
                free(string);

如果在if后加上printf后,输出string就不会为乱码;如果没有printf,本应输出为空的string里面有乱码,请教各位,printf起到了什么作用?
整个代码如后面的回复附件,例子参考了mplayer

[ 本帖最后由 kingink1983 于 2008-11-20 14:47 编辑 ]
bug killer

Rank: 3Rank: 3

帖子
1223
主题
35
精华
0
可用积分
4130
专家积分
105
在线时间
4818 小时
注册时间
2008-10-06
最后登录
2011-09-26
论坛徽章:
0
发表于 2008-11-20 11:59:12 |显示全部楼层
这么多if你说的是哪个呢?
printf在你这里只是输出,加或去都一样

Rank: 1

帖子
99
主题
13
精华
0
可用积分
461
专家积分
0
在线时间
23 小时
注册时间
2008-08-30
最后登录
2011-07-14
论坛徽章:
0
发表于 2008-11-20 12:15:01 |显示全部楼层
printf("------------pos: %d\n", pos);
            printf("------------len: %d\n", len);
就是这两个,printf有时对string的输出有影响

Rank: 8Rank: 8

帖子
1896
主题
92
精华
1
可用积分
17814
专家积分
100
在线时间
2887 小时
注册时间
2005-09-20
最后登录
2012-02-09
论坛徽章:
0
发表于 2008-11-20 12:18:57 |显示全部楼层

回复 #1 kingink1983 的帖子

估计是程序本身的问题,比如字符串后面没有补\0或者溢出等等。请仔细检查一下你的代码。
本人开发了一款开源的分布式文件系统FastDFS,纯C编写,非常轻量级。它解决大容量存储和大并发访问的问题,当前版本为V2.13和V3.06,请各位大虾多多支持。详情参阅:http://bbs.chinaunix.net/forum-240-1.html
昼伏夜不出- 天神

Rank: 7Rank: 7Rank: 7

帖子
6532
主题
167
精华
0
可用积分
10534
专家积分
25
在线时间
4729 小时
注册时间
2007-12-09
最后登录
2012-01-18
论坛徽章:
0
发表于 2008-11-20 12:39:07 |显示全部楼层
你帖的代码太少了。
hdr数组和得string的函数的代码都没帖。
linux c++ 网络服务器开发
QQ群:25682102

Rank: 1

帖子
99
主题
13
精华
0
可用积分
461
专家积分
0
在线时间
23 小时
注册时间
2008-08-30
最后登录
2011-07-14
论坛徽章:
0
发表于 2008-11-20 12:42:58 |显示全部楼层

回复 #4 happy_fish100 的帖子

这些和printf有啥联系呢?

Rank: 1

帖子
99
主题
13
精华
0
可用积分
461
专家积分
0
在线时间
23 小时
注册时间
2008-08-30
最后登录
2011-07-14
论坛徽章:
0
发表于 2008-11-20 12:55:11 |显示全部楼层
附上代码,请大家指教。
将hdr的内容输出到屏幕与写入到文件的结果为什么不一致呢?
(文件包编译方式后,直接./linkmmsrip mms:// 地址……,就可以)

readinfonew.rar

24.61 KB, 下载次数: 20

Rank: 1

帖子
99
主题
13
精华
0
可用积分
461
专家积分
0
在线时间
23 小时
注册时间
2008-08-30
最后登录
2011-07-14
论坛徽章:
0
发表于 2008-11-20 14:18:05 |显示全部楼层
哎,帖子沉了~~
昼伏夜不出- 天神

Rank: 7Rank: 7Rank: 7

帖子
6532
主题
167
精华
0
可用积分
10534
专家积分
25
在线时间
4729 小时
注册时间
2007-12-09
最后登录
2012-01-18
论坛徽章:
0
发表于 2008-11-20 16:01:21 |显示全部楼层
get_ucs2str函数里没有将outbuf后面加个'\0'?
linux c++ 网络服务器开发
QQ群:25682102
昼伏夜不出- 天神

Rank: 7Rank: 7Rank: 7

帖子
6532
主题
167
精华
0
可用积分
10534
专家积分
25
在线时间
4729 小时
注册时间
2007-12-09
最后登录
2012-01-18
论坛徽章:
0
发表于 2008-11-20 16:04:35 |显示全部楼层
另外下次不要整个代码都给,一般都有自己的事情,不会去看你整个的代码,除非你的代码很有研究价值。
给出给你的代码相关的部分就行了。
像你的这个例子的get_ucs2str函数要给出。

或者你不知道给哪部分,至少要说明出问题的那部分在你的哪个源文件里。让更大家能更快定位。
linux c++ 网络服务器开发
QQ群:25682102
您需要登录后才可以回帖 登录 | 注册

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP