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


[C] 请教有关字符串输出问题

  首页 » 论坛 » C/C++ »
[打印] [收藏] [本帖文本页] [推荐此主题给朋友]

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



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



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



回复 #1 kingink1983 的帖子

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



你帖的代码太少了。
hdr数组和得string的函数的代码都没帖。
__________________________________
linux c++ 网络服务器开发
QQ群:25682102

有年轻貌美姑娘的联系我。



回复 #4 happy_fish100 的帖子

这些和printf有啥联系呢?



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

readinfonew.rar (24.61 KB)




哎,帖子沉了~~



get_ucs2str函数里没有将outbuf后面加个'\0'?
__________________________________
linux c++ 网络服务器开发
QQ群:25682102

有年轻貌美姑娘的联系我。



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

或者你不知道给哪部分,至少要说明出问题的那部分在你的哪个源文件里。让更大家能更快定位。
__________________________________
linux c++ 网络服务器开发
QQ群:25682102

有年轻貌美姑娘的联系我。


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

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

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP