【发布时间】:2015-03-12 02:07:28
【问题描述】:
并不是真正询问解析命令行参数,而是读取它们的代码 (C++)
我在 MSVC2010 中写过。选择Project\DEbugging\Command Line Arguement),我写了如下
"testvid" 10000 15000
全部用空格隔开
对于我读入的代码,我使用字符串流来读入
string folder;
int begin;
int end;
if(argc = 4){
std::stringstream ssArgConverter;
folder = argv[1];
ssArgConverter << argv[2];
if(ssArgConverter >> begin)
{
// success
ssArgConverter.str("");
}
ssArgConverter << argv[3];
if(ssArgConverter >> end)
{
// success
ssArgConverter.str("");
}
}
已经测试了程序,但我似乎在最后一个参数中阅读有问题。我的程序中参数的打印值为
folder : testvid
begin : 10000
end : -89456273
只是想不通是哪里出了问题。在这里需要一些帮助。谢谢
【问题讨论】:
-
注意:如果
ssArgConverter读取argv[2]失败,你仍然需要让它脱离错误状态(可能通过clearing错误状态)。 -
顺便说一句,当您使用调试器单独单步执行每个语句时出现了什么问题?
-
为什么在
if语句中将值 4 分配给argc? -
我有 3 个参数和一个函数名...所以我认为 argc 值为 4
-
@user1538798:好的,但是
if(argc = 4){将4 分配给argc,而if(argc == 4){比较它们。
标签: c++ visual-c++ command-line-arguments stringstream