我有一个包含很多charechter的BSTR。
BSTR theFile = NULL;
int res = comSmartspeak -> readTheFile(fileName, &theFile);
我想阅读第一行,我不知道该怎么做。
这是我提出的伪代码:
string firstLine = "";
for (int i = 0; i < SysStringLen(theFile) ; i++)
{
if (theFile[i] == '\n')
{
break;
}else
{
firstLine += theFile[i] ;
}
}
我是VC ++的新手。
答案 0 :(得分:0)
你可以做这样的事情,假设你可以自由地使用std :: wstring,这样你就不必事先计算第一行的长度:
#include <Windows.h>
#include <iostream>
#include <string>
int main()
{
BSTR a_bstr = ::SysAllocString(L"First line of text\nSecond line of text\nThird line of text\nFourth line of text...");
std::wstring wide_str;
unsigned int len = ::SysStringLen(a_bstr);
for (unsigned int i = 0; i < len; ++i)
{
if (a_bstr[i] != '\n')
wide_str += a_bstr[i];
else
break;
}
// wide_str holds your first line
std::wcout << "First line: " << wide_str << std::endl;
::SysFreeString(a_bstr);
return 0;
}