从 CString 引用中获取 CString?
Posted
技术标签:
【中文标题】从 CString 引用中获取 CString?【英文标题】:Get CString from CString reference? 【发布时间】:2013-04-16 11:37:34 【问题描述】:这是我的代码
CInternetSession session(L"My Session");
CHttpConnection *pHttpCon ;
CHttpFile *filedat = NULL;
pHttpCon = session.GetHttpConnection((LPCTSTR)Url_server, (INTERNET_PORT)1040, (LPCTSTR)username, (LPCTSTR)password);
filedat = pHttpCon->OpenRequest(CHttpConnection::HTTP_VERB_GET, "");
filedat->SendRequest();
CString line;
while(filedat->ReadString(line))
printf("Line : %s ",(LPCTSTR)line);
printf("\n Line Length : %d ",line.GetLength());
问题是字符串读取为“file1.name=201304”,长度为 9 它应该是 17 或更多。哪位小伙伴能告诉我可能是什么问题???
String Read Showing Length
"file1.size=16" 7
"file1.time=2013/02/28 Thu 10:36:32" 17
"file1.name=201304" 9
【问题讨论】:
如果你期望的长度是17,得到的长度是9,那9个字符串的content是什么?这是您期望的前 9 个字符吗? 没有。内容是“file1.name=201304”.. 那么,你是说CString::GetLength()
给出了错误的值?
是的。如果我手动将字符串值分配给该变量,它会正确给出长度。但这里它是从 CHttpFile::ReadString 分配的 ..
您阅读的字符串超过 1 个吗?您的 printf
写了两行,但只写了一行 \n
- 您确定您正在正确读取输出吗?
【参考方案1】:
做以下工作:
while(filedat->ReadString(line))
/* Original code
printf("Line : %s ",(LPCTSTR)line);
printf("\n Line Length : %d ",line.GetLength());
*/
_tprintf(L"%s\n", (LPCTSTR)line);
_tprintf(L"Line Length: %d\n\n", line.GetLength());
【讨论】:
以上是关于从 CString 引用中获取 CString?的主要内容,如果未能解决你的问题,请参考以下文章