C - argv[] 传入 * 作为参数,打印时返回 1

标签 c

我正在尝试查看 * 是否作为参数传入 argv,但我不确定如何开始对其进行测试。当我做了一个

printf("%s\n", argv[1]);

代码打印出1,我测试运行了

./a.out \*

要转义输入,它确实有效并打印了“*”,但我希望能够在不从用户端转义的情况下传入 * 并能够看到 * 已通过。我不能只测试

if (strcmp(argv[1], "1") == 0)

因为那会测试我是否通过了 1 之类的

./a.out 1

我应该怎么做?

最佳答案

这与c无关。它是你的 shell 在运行你的程序之前处理它的行。你没有指定你的操作系统,但你需要转义任何参数

关于C - argv[] 传入 * 作为参数,打印时返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49785710/

相关文章:

c - 在c中实现通用堆栈

c - C 中的寻址 (&) 和间接寻址 (*)

c - sscanf 无法检测到数字 C

c - 如何有效地交错 8 个 __int16 数字中的位?

c - 尝试交换用户输入数组中的多个值

c - 用于简单 C dll 的良好 IDE/编译器

c++ - 如何防止我的 makefile 由于静态库而重新链接

c++ - libxml 2 的 xml 复制 NodeList 中的内存泄漏

c - x64 Windows下的快速光纤/协程

c - 如何使用按位运算返回 0?