c++-(MFC,socket)C++从http响应中读取到文件字符数组,但无法写入到文件中,显示为0kb

问题描述

(MFC,socket)C++从http响应中读取到文件字符数组,但无法写入到文件中,显示为0kb

resp_leng= recv(sock, (char*)&buffer, BUFFERSIZE, 0);
npos=string(buffer).find("rnrn",0);
if(resp_leng>0 )
{
if ( npos >= resp_leng-1 && flag)
{
response+= string(buffer).substr(0,resp_leng);
}
else if( npos < resp_leng-1 && flag)
{
response+= string(buffer).substr(0,npos);
of<<string(buffer).substr(npos+4,resp_leng-npos-4);
flag = 0;
}
else
{
of<<string(buffer).substr(0,resp_leng);
}
}

    注:
    HTTP响应
    HTTP/1.1 200 OK

Content-Type: text/plain
Content-Length: 8
Accept-Ranges: bytes
Server: HFS 2.3 beta
Last-Modified: Thu, 31 Dec 2015 09:29:20 GMT
Content-Disposition: filename="test.txt";

testtest

问题:
只是想把“testtest”保存到本地,但始终文件为0kb
而debug下str1 = string(buffer).substr(npos+4,resp_leng-npos-4);的结果的确为
“testtest”的字符串,而且将str1拷贝到str2,在保存,也会出现同样的问题;
目前怀疑是不是编码问题,但是服务器端的文件test.txt为ANSI编码呀

解决方案

算了还是自己来吧,结果是缓冲区太大数据没有完全读出来

解决方案二:

你的写文件的逻辑呢?
of在哪里定义的,有没有of.flush();of.close();

时间: 2024-10-14 15:19:55

c++-(MFC,socket)C++从http响应中读取到文件字符数组,但无法写入到文件中,显示为0kb的相关文章

c语言中向二维字符数组中写入符号*

问题描述 c语言中向二维字符数组中写入符号* 声明一个二维字符数组char str[][]: 通过循环嵌套向里面写入符号 * 怎么实现?求前辈指教. 解决方案 for (int i = 0; i < 100; i++) { arr[i / 10][u % 10] = ' '; } for (i =0; i < 10; i++) { arr[3][i] = '*'; arr[4][i] = '*'; arr[i][3] = '*'; arr[i][4] = '*'; } 解决方案二: 只要一行

c++-请问C++中,如何获取字符数组的有效长度?(截止到“”)

问题描述 请问C++中,如何获取字符数组的有效长度?(截止到"") 请问,在C++中,如何获取字符数组的有效长度?(截止到"")? 解决方案 for(int i=0;;i++){ if(charArray[i]=='n') break; else sum++;} 解决方案二: 用函数strlen或者自己循环int i = 0;while (str[i++] != '');return i; 解决方案三: 有个函数叫strlen().你查一下函数参考手册就知道了 用m

fgets-如何没从一个txt文件中读取数据,然后将这条从txt文件中删除

问题描述 如何没从一个txt文件中读取数据,然后将这条从txt文件中删除 就是用于post的模块,从txt中读取一行post信息之后将它post出去,如果post成功,就将它从日志txt中删除. 感觉这个读取还好说,一行用fgets拉出来就可以post了吧 但是这个删除该如何是好 这就是一个起到日志作用的txt,如果可以Post的情况就一条一条post出去,不可以就存进来,大家来给我一点意见吧 解决方案 从一个txt文件中读取矩阵从一个txt文件中读取矩阵从oracle中读取数据并保存在txt文

解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)

本篇文章是对在Jquery中把一段html代码动态写入到DIV中的实现方法进行了详细的分析介绍,需要的朋友可以参考下   复制代码 代码如下: nav1 = "<div style='width:145px;height:62px;float:left;background:url(login_image/index/on_1.jpg);font-size:18px;color:white;line-height:65px;' id='left_tab" +  "<

java 如何从txt文档中读取内容到string[]数组中

问题描述 txt读取每一行文字存为一个stringVector<String>result=null;publicdelStopWord(){Stringline=null;try{BufferedReaderreader=newBufferedReader(newFileReader("data\stopList.txt"));while((line=reader.readLine())!=null){result.add(line);}}catch(IOExceptio

解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)_jquery

复制代码 代码如下: nav1 = "<div style='width:145px;height:62px;float:left;background:url(login_image/index/on_1.jpg);font-size:18px;color:white;line-height:65px;' id='left_tab" +  "</div>" 复制代码 代码如下:  $("#top_1").html(nav1);

在Java中读取写入XML文件(DEMO_004)

1.如果要将读取的XML文件,再写入另外的一个新XML文件中,首先必须新建一个和要读取相对应的beans类,通过set方法填充数据,get方法获取数据. 2.在读取XML文件的时候,需要用到ArrayList集合来存储每次从原XML文件里面读取的数据,在写入新的XML文件的时候,也要通过ArrayList集合获取要遍历的次数,同时将数据写入到新的xml文件中 3.详细代码如下: public static void main(String[] args) { try { String url =

java中对字符串每个字符统计的方法_java

复制代码 代码如下: /*     String name = "adsbsadgsadgtewterfsdf";     eg a-->6,b-->1 d-->3 ...     将字符串以a(字母)=>2(个数)存入Map集合框架中    思路:1.将字符串转换成字符数组.           2.定义一个Map集合,然后对字符数组进行遍历,如果Map集合中没有该元素就将该元素存入Map集合中,并定义一个计数器,将次数存入Map中,来达到目的  */impo

c 字符串输入-c语言中如何动态输入字符串而不需要事先定义字符数组大小

问题描述 c语言中如何动态输入字符串而不需要事先定义字符数组大小 如标题 c语言中如何动态输入字符串而不需要事先定义字符数组大小或为字符指针分配空间 解决方案 你这个要求实际使用度太低,或者说,完全没有必要非要这样去想. 解决方案二: c语言中字符串与字符数组c语言中的字符数组与字符串C语言 字符数组和字符串 解决方案三: 你这样定义好了char *p; 解决方案四: #include #include #include #define Step 10 //空间增加的步长. char * get