BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 



[C] 请教有关字符串输出问题
首页 » 论坛 » C/C++ »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
kingink1983
骑士



CU编号: 754370
注册:2008-8-30
最后登录: 2009-06-03
帖子:77
精华:0

可用积分:131 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


1楼 发表于 2008-11-20 11:43 

在如下代码中,
    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 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]
alexhappy (Alex)
天使
bug killer



CU编号: 769801
注册:2008-10-6
最后登录: 2009-07-05
帖子:1081
精华:0

可用积分:3623 (小富即安)
信誉积分:0
专家积分:145 (本版:105)
空间积分:0
推广积分:0

来自:上海
状态:...保密...

[个人空间] [短信] [博客]


2楼 发表于 2008-11-20 11:59 

这么多if你说的是哪个呢?
printf在你这里只是输出,加或去都一样



您对本贴的看法:鲜花[0] 臭蛋[0]
kingink1983
骑士



CU编号: 754370
注册:2008-8-30
最后登录: 2009-06-03
帖子:77
精华:0

可用积分:131 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


3楼 发表于 2008-11-20 12:15 

printf("------------pos: %d\n", pos);
            printf("------------len: %d\n", len);
就是这两个,printf有时对string的输出有影响



您对本贴的看法:鲜花[0] 臭蛋[0]
实习版主 happy_fish100   帅哥
实习版主-光明使者




CU编号: 315669
注册:2005-9-20
最后登录: 2009-07-04
帖子:789
精华:1

可用积分:1556 (家境小康)
信誉积分:100
专家积分:90 (本版:85)
空间积分:0
推广积分:0

来自:北京
状态:...离线...

[个人空间] [短信] [博客]


4楼 发表于 2008-11-20 12:18 

回复 #1 kingink1983 的帖子

估计是程序本身的问题,比如字符串后面没有补\0或者溢出等等。请仔细检查一下你的代码。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

本人开发了一款开源的分布式文件系统FastDFS,纯C编写,非常轻量级,不到3万行代码。它解决大容量存储和大并发访问的问题,当前版本为V1.16,请各位大虾多多支持。详情参阅:http://www.csource.org/
yangsf5   帅哥 (三疯)
法师


CU奥运火炬传递手2008
CU编号: 652233
注册:2007-12-9
最后登录: 2009-07-05
帖子:5530
精华:0

可用积分:6623 (富足长乐)
信誉积分:5
专家积分:20 (本版:0)
空间积分:804
推广积分:162

状态:...在线...

[个人空间] [短信] [博客]


5楼 发表于 2008-11-20 12:39 

你帖的代码太少了。
hdr数组和得string的函数的代码都没帖。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

无业游民中
linux c++ 网络服务器开发
QQ群:25682102

kingink1983
骑士



CU编号: 754370
注册:2008-8-30
最后登录: 2009-06-03
帖子:77
精华:0

可用积分:131 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


6楼 发表于 2008-11-20 12:42 

回复 #4 happy_fish100 的帖子

这些和printf有啥联系呢?



您对本贴的看法:鲜花[0] 臭蛋[0]
kingink1983
骑士



CU编号: 754370
注册:2008-8-30
最后登录: 2009-06-03
帖子:77
精华:0

可用积分:131 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


7楼 发表于 2008-11-20 12:55 

附上代码,请大家指教。
将hdr的内容输出到屏幕与写入到文件的结果为什么不一致呢?
(文件包编译方式后,直接./linkmmsrip mms:// 地址……,就可以)



2008-11-20 12:55
  下载次数: 11
readinfonew.rar (24.61 KB)
 


您对本贴的看法:鲜花[0] 臭蛋[0]
kingink1983
骑士



CU编号: 754370
注册:2008-8-30
最后登录: 2009-06-03
帖子:77
精华:0

可用积分:131 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


8楼 发表于 2008-11-20 14:18 

哎,帖子沉了~~



您对本贴的看法:鲜花[0] 臭蛋[0]
yangsf5   帅哥 (三疯)
法师


CU奥运火炬传递手2008
CU编号: 652233
注册:2007-12-9
最后登录: 2009-07-05
帖子:5530
精华:0

可用积分:6623 (富足长乐)
信誉积分:5
专家积分:20 (本版:0)
空间积分:804
推广积分:162

状态:...在线...

[个人空间] [短信] [博客]


9楼 发表于 2008-11-20 16:01 

get_ucs2str函数里没有将outbuf后面加个'\0'?



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

无业游民中
linux c++ 网络服务器开发
QQ群:25682102

yangsf5   帅哥 (三疯)
法师


CU奥运火炬传递手2008
CU编号: 652233
注册:2007-12-9
最后登录: 2009-07-05
帖子:5530
精华:0

可用积分:6623 (富足长乐)
信誉积分:5
专家积分:20 (本版:0)
空间积分:804
推广积分:162

状态:...在线...

[个人空间] [短信] [博客]


10楼 发表于 2008-11-20 16:04 

另外下次不要整个代码都给,一般都有自己的事情,不会去看你整个的代码,除非你的代码很有研究价值。
给出给你的代码相关的部分就行了。
像你的这个例子的get_ucs2str函数要给出。

或者你不知道给哪部分,至少要说明出问题的那部分在你的哪个源文件里。让更大家能更快定位。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

无业游民中
linux c++ 网络服务器开发
QQ群:25682102


首页 » 论坛 » C/C++ »


 


Copyright © 2001-2009 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.095395 second(s), 5 queries , Gzip enabled