其他分享
首页 > 其他分享> > c – 有没有办法获得std:string的缓冲区

c – 有没有办法获得std:string的缓冲区

作者:互联网

有没有办法让std :: string得到“原始”缓冲区?
我在考虑类似于CString :: GetBuffer()的东西.例如,使用CString我会这样做:

CString myPath;  
::GetCurrentDirectory(MAX_PATH+1, myPath.GetBuffer(MAX_PATH));  
myPath.ReleaseBuffer();  

那么,std :: string有类似的东西吗?

解决方法:

使用std :: vector< char>如果你想要一个真正的缓冲区.

#include <vector>
#include <string>

int main(){
  std::vector<char> buff(MAX_PATH+1);
  ::GetCurrentDirectory(MAX_PATH+1, &buff[0]);
  std::string path(buff.begin(), buff.end());
}

Example on Ideone.

标签:c,stl,winapi,stdstring
来源: https://codeday.me/bug/20191006/1860895.html