c++ - 如何防止在 argv 中丢失双引号?

标签 c++ console mingw

好的,我知道我可以像这样循环:

for (int i=1; i<=argc-1;i++) {
  cout << argv[i] << endl;
}

但是这种方式会丢失双引号,即字符串 "something here" 被视为 args 数组的一个元素并且引号会丢失。

好的,我知道如果参数内部有空格我可以假定引号,但无论是否有空格,引号总是丢失。

最佳答案

是删除引号的 shell。如果您希望 shell 将引号传递给您,您必须对它们进行转义:

$ ./my-program \"hello\ world\"

请注意,我也对空格进行了转义,使其成为一个参数。

关于c++ - 如何防止在 argv 中丢失双引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10830418/

相关文章:

c++ - 使用 OpenCV 将 RGB 图像转换为二值图像

c++ - 我在我的系统上出错的地方程序运行正常但在提交时得到错误的答案http ://www. spoj.com/problems/NITT2/

c++ - 控制台获取按键 w/o windows 消息 c++

c++ - 是否可以查看在命令行应用程序运行后执行了哪些行?

c++ - 当我们从用户模式转移到内核模式时,哪些寄存器发生了变化?!转移到内核模式的原因是什么?

c++ - 在不知道参数类型的情况下否定 lambda?

javascript - IE8 控制台日志 - 如果开发工具未打开则 stub ,但如果开发工具打开则使用?

IOS10 将所有 xcode 控制台日志打印到 iPhone 应用程序页面内的 UITextview

c++ - 为什么 g++/ld 内存不足?

c - 如何将 posix 线程添加到 windows 上的 eclipse (MinGW)