想从网上下载文件。文件保存在内存里 不保存在本地。
先读取网络文件保存在缓冲区,如何读取显示这个缓冲区的内容呢。怎么读取出来的是一个地址呢。想显示这个文件的整个内容 而不是只显示一个地址。
新手对内存这些不明白 希望有人能指点一下。
size_t writedata(char *buffer, size_t size, size_t nitems, string *outstream)
{
outstream->append(buffer, len);
return len;}
writedata(buffer, size,nitems, &str)//如何显示str的内容呢 如果把str 转换成16进制的 就是一个地址

解决方案 »

  1.   

    cout << str; 不行吗?
      

  2.   

    你下载下来的是什么文件?文本的话cout,printf都可以显示啊(控制台的)
    视窗界面的是Textout和DrawText如果是图片或者视频就要用关控件了
    图片的话可以用CImage,CXImage,也可以用DC直接显示
    视频的话要用Media Player控件。
      

  3.   


    下载的一个图片 我想把保存在str里面的内容,传递给另一个函数show(char* buf)里面。显示图片由show函数显示,现在不明白的是 str里面的是个地址 不知道直接传给show函数 show函数能不能正确显示图片呢
      

  4.   

    你的str是个string*, 你需要将其转换为 char* 才能传给你的show函数。其实这个show的参数定义也很成问题,显示一个缓冲区:
    show(unsigned char *buffer, size_t size); 更严谨一些。
      

  5.   

    请问能不能用MessageBox输出文件的内容呢。直接输入的话显示的是一个地址。
      

  6.   

    MessageBox输出文件的内容只有限的字符,如果字符太多就看不到了,因为弹出的提示框没有滚动条.
    想按16进制显示缓冲区,这么做:
    数据已存在buffer里了,CString str,str1;
    str.Empty();
    for(int i=0;i<buffer里的数据长度;i++)
    {
    str1.Format("%02x ",buffer[i];
    str+=str1;
    }
    这样str就是16进制的内容,这时,可能用象EDIT控件(属性设成多行显示),RICHEDIT控件等显示
      

  7.   

    用您的方法char * 类型的BUF可以获取 ,但是我的内容都放到string类型变量里了里面了 如何输入呢。
      

  8.   

    上面说错了 是如何输出呢。string类型的直接Messagebox是地址。也想直接Messagebox输出具体数据