如果程序从环境变量运行,如何将文件路径作为参数传递给程序?C++
我正在做一个编码和解码文件的大学项目。我想让它从命令行运行,如下所示: myapp文件\u名称-代码 myapp文件\u名称-解码 如何在打开CMD的目录中获取文件的路径,以及如何将文件保存到同一目录? 我的代码(如果需要):如果程序从环境变量运行,如何将文件路径作为参数传递给程序?C++,c++,environment-variables,environment,C++,Environment Variables,Environment,我正在做一个编码和解码文件的大学项目。我想让它从命令行运行,如下所示: myapp文件\u名称-代码 myapp文件\u名称-解码 如何在打开CMD的目录中获取文件的路径,以及如何将文件保存到同一目录? 我的代码(如果需要): int main(int argc, char *argv[]) { std::cout << argv[1] << std::endl; if (argv[2] == "code" || argv[2] == &quo
int main(int argc, char *argv[]) {
std::cout << argv[1] << std::endl;
if (argv[2] == "code" || argv[2] == "c") {
try {
WriteAllBytes("coded.gau", StringToCharVector(Code(CharVectorToString(ReadAllBytes(argv[1])))));
} catch (...) {
std::cout << "Exception!" << std::endl;
}
} else if (argv[2] == "decode" || argv[2] == "d") {
try {
WriteAllBytes("coded.gau", StringToCharVector(Decode(CharVectorToString(ReadAllBytes(argv[1])))));
} catch (...) {
std::cout << "Exception!" << std::endl;
}
}
}您可以使用
:
//声明支持的选项。
po::选项\描述允许的选项;
desc.add_选项
帮助,生成帮助消息
压缩,po::值,设置压缩级别
;
变量映射虚拟机;
po::storepo::parse_命令_lineac、av、desc、vm;
po::notifyvm;
Glibc:
而c=getopt argc、argv、abc:!=-1.
开关c
{
案例“a”:
aflag=1;
打破
案例“b”:
bflag=1;
打破
...
请参见示例的其余部分:
:
QCommandLineParser;
parser.setApplicationDescriptionTest助手;
parser.addHelpOption;
parser.addVersionOption;
parser.AddPositionArgumentSource,QCoreApplication::translatemain,要复制的源文件。;
parser.AddPositionArgumentDestination,QCoreApplication::translatemain,目标目录。;
示例的其余部分:不要忘记使参数解析更容易、更可靠的事情。如果argc至少不是3,则此代码将很难崩溃。argv[2]检查是错误的,不清楚为什么您不能调试它。在VS中使用Project>Properties>Debugging>Command Arguments。没有库就无法完成此操作吗?您可以自己解析它,没有库是什么意思?您的程序已经链接到libc,您可以使用getopt。如果您遵循低问一个好问题的规则我们比你一块一块地问问题更好地指导你,见下表: