gpt4 book ai didi

c++ - c/c++ 中的引号和 argv

转载 作者:太空狗 更新时间:2023-10-29 23:50:24 26 4
gpt4 key购买 nike

我已经看到数组 argv(在 c/c++ 程序中)包含已被引号去除的字符串。

例如,考虑以下程序:

 #include <iostream>
using namespace std;

int main (int argc, char* argv[]) {
cout << argv[1];
}

当我执行它时:

 ./prog 'asd'

我收到:

 asd

有没有办法知道某个参数是否被 linux 中的引号(单引号或双引号)剥离,而不转义它们(就像这里建议的 how to prevent losing double quotes in argv? )?

最佳答案

从字符串中去除引号的不是 C++ 运行时,而是操作系统 shell(例如 Bash)。后者有效地将参数传递给您的程序。所以,你需要遵循shell的规则。例如,在 Bash 中,您需要“转义”引号

./prog \"something\"

因为引号有特殊的含义。无法从您的 C++ 程序中“强制执行”引号,因为它们在您运行程序之前就被删除了。

关于c++ - c/c++ 中的引号和 argv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30519252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com