Kno*_*d V 0 c++ arrays boost input char
我已经研究出如何将 boost 路径传递为所需的格式,但是我遇到了一些问题,无法将 path.stem 传递到 char 数组中,然后对文件名进行一些检查并采取正确的操作
需要读取文件名并检查然后操作中的下一个可用数字,我打算使用 for 循环将数字放入一个字符数组中,然后与这个单独的计数器进行比较
我如何将 path() 逐字符输入到数组中 - 或者有更好的方法!
int count(boost::filesystem::path input) {
cout << "inputzz : " << input << endl;
char data;
wstring winput;
for (int a = 0; a < 4;){
//boost::filesystem::absolute(input).string();
//cout << input.generic_string() << endl;
(input.generic_string()) >> data;
data << (boost::filesystem::path()input.generic_string());
//a++
};
Run Code Online (Sandbox Code Playgroud)
海湾合作委员会:
给定 a bfs::path p,p.c_str()让您可以访问以空字符结尾的char*数组。
const char* c = p.c_str();
Run Code Online (Sandbox Code Playgroud)
完整示例:
#include<iostream>
#include<boost/filesystem/path.hpp>
int main(){
boost::filesystem::path p("~/.bashrc");
const char* c = p.c_str();
std::cout << c << '\n';
char c2[99];
std::strcpy(c2, p.c_str());
std::cout << c2 << '\n';
}
Run Code Online (Sandbox Code Playgroud)
MSVC:
char不是所有系统的底层表示。在Windows例如,它是wchar_t。出于这个原因,人们可能需要使用路径的值类型,如在const boost::filesystem::path::value_type* c = p.c_str();和 修改其余代码,例如使用泛型std::copy.
或者,可以在此处找到将 a 转换wchar_t *为 a的示例代码。char *