如何防止在 argv 中丢失双引号
how to prevent losing double quotes in argv?
好的,我知道我可以像这样循环:
for (int i=1; i<=argc-1;i++) {
cout << argv[i] << endl;
}
但是这样双引号就会丢失,即一个字符串"something here"
被视为 args 数组的一个元素,引号就会丢失。
好的,我知道如果参数内部有空格,我可以假设引号,但是无论是否有空格,引号总是丢失。
它是删除引号的外壳。如果你想让 shell 将引号传递给你,你必须转义它们:
$ ./my-program "hello world"
请注意,我也逃离了空间,使其成为一个参数。
当你需要原始命令行时,你可以使用 GetCommandLine() API 函数。
相关文章:
- 防止主数据类型C++的隐式转换
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 为什么我的for循环不能正确获取argv
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 将指针设置为"nullptr"并不能防止双重删除?
- 如何防止C++遗留代码中的挂起指针
- Python中的for循环与C++有何不同
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 如何防止初始值设定项列表中的错误值?
- OpenCV 我应该使用智能指针来防止内存泄漏吗?
- C++ 防止在映射中放置()时调用析构函数
- 碱基对映射 - 将 argv[i] 移动到整数或字符作为输入
- 是否可以防止省略聚合初始化成员?
- 如何将 argv[1] 转换为 LPCVOID?
- 在C++中释放内存期间,迭代器与指针有何不同
- 如何在多个线程中创建 QSql数据库连接时防止名称冲突
- 防止在C++中选择错误文件时提升 xml 解析器崩溃
- std::mutex 如何防止线程修改?
- 如何防止在 argv 中丢失双引号
- 当我将字符串文字分配给static char*argv[]时,如何防止编译器发出警告