是否有办法获取std:string的缓冲区 [英] Is there a way to get std:string's buffer
本文介绍了是否有办法获取std:string的缓冲区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有一种方法可以获得原始缓冲区oa 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());
}
Is there a way to get the "raw" buffer o a std::string?
I'm thinking of something similar to CString::GetBuffer()
. For example, with CString I would do:
CString myPath;
::GetCurrentDirectory(MAX_PATH+1, myPath.GetBuffer(MAX_PATH));
myPath.ReleaseBuffer();
So, does std::string have something similar?
解决方案
Use std::vector<char>
if you want a real buffer.
#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());
}
这篇关于是否有办法获取std:string的缓冲区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文