C++ argv[1] 有些奇怪
c++ argv[1] something strange
我在解析argv[]
的C++参数时遇到了奇怪的问题。下面是一些代码示例:
int main(int argc, char **argv) {
for (int i=0; i <argc; i++)
printf("argv[%d] = %s|n", i, argv[i]);
return 0;
};
当我像这样运行这个程序时:
./myprogram --aaa-a --bbb-b --ccc-c
我得到的结果是这样的:
argv[0] = myprogram|
argv[1] = --aaa-a --bbb-b|
argv[2] = --ccc-c
但是当我尝试时:
./myprogram --aaa-a --bbb-b --ccc-c
在 aa 和 bb 之间有额外的空间,我得到了:
argv[0] = myprogram|
argv[1] = --aaa-a|
argv[2] = --bbb-b|
argv[3] = --ccc-c|
有人能告诉我这里发生了什么吗?
由于某种原因,您在--aaa-a
和--bbb-b
之间有一个不可断开的空格(或任何显示为空格的字符)。删除整个命令行并从头开始重新编写。
相关文章:
- 为什么我的for循环不能正确获取argv
- 碱基对映射 - 将 argv[i] 移动到整数或字符作为输入
- 如何将 argv[1] 转换为 LPCVOID?
- C ++编译器如何获取argv字符串的长度
- 从 argv[1] 转换为字符 * 字符串后有什么问题?
- 如何使用提升program_options在使用后消耗/删除 ARGV 中的选项
- 如何将argv字符串更改为大数字的长整数
- 方法 argv[] SWIG C++ / Python 中的错误,会发生什么?
- 使用字符** argv 时如何避免指针算法
- 将 char* argv[] 转换为 wstring
- 字符串到来自 argv 的整数
- 在VS2013中使用devenv (C++)传递命令行参数argv
- 常量字符 * vs 常量字符 ** 在 argv 上
- 视频捕获与" int main(int argc, char **argv) "
- 基于C 的基于动词的ARGV
- 通过在argv中传递多个文件来读取它们[1]
- C++ Argv[1] 终止程序,返回值 9009
- 为什么现代C 仍然保留旧的C样式原型,用于int argc,char ** argv
- 作为参数的'char *args[]'和'char **argv'之间的差异
- 将ARGV和ARGC传递给Main作为数组