如何解决我如何创建 const char* []
int ParseCommandLine( int argc,const char* argv[])
{
string inFilePath = "";
string outFilePath = "";
for( int i = 1; i < argc; ++i )
{
if( string( argv[i] ) == "-i" || string( argv[i] ) == "--input")
{
// Check for "-i @args" form of reqest.
if( argc <= 2 )
{
ifstream newIn;
newIn.open(string(argv[++i]));
if(!newIn.is_open())
{
cerr << "Incorrect file path.";
return 1;
}
string buff;
vector<string> file;
while(newIn >> buff)
file.push_back(buff);
char** arr = new char* [file.size()];
for(int j = 0; j < file.size(); ++j)
arr[j] = file[j].c_str(); // Error: Assigning to 'char *' from incompatible type 'const std::__1::basic_string<char,std::__1::char_traits<char>,std::__1::allocator<char> >::value_type *' (aka 'const char *')
ParseCommandLine(file.size(),arr); // Error No matching function for call to 'ParseCommandLine'
delete[] arr;
newIn.close();
return 0;
}
else
{
cerr << "Reqest with --input option can have only one argument." << endl;
return 1;
}
}
函数 ParseCommandLine 从主要参数中获取 argc&argv。这段程序需要将新文件转换为const char* argv[],然后调用ParseComandLine。
有人可以帮忙解决这个问题吗?
解决方法
只需将 char
更改为 const char
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。