gpt4 book ai didi

c - 无法将 '#' 字符作为命令行参数传递

转载 作者:行者123 更新时间:2023-11-29 08:42:40 28 4
gpt4 key购买 nike

我不能将以 # 开头的字符串作为命令行参数传递。

这是一个简单的测试:

#include <stdio.h>

int main(int argc, char *argv[])
{
for (int i = 1; i < argc; i++)
printf("%s ", argv[i]);

putchar('\n');

return 0;
}

如果我输入参数如下:

2 4 # 5 6

argc 的值为 3 而不是 6。它读取 # 并停在那里。我不知道为什么,在我的 The C Programming LanguageC Primer Plus 中找不到答案。

最佳答案

# 在 Unix shell 中开始注释,很像 C 中的 //

这意味着当 shell 将参数传递给程序时,它会忽略# 后面的所有内容。用反斜杠或引号将其转义意味着它会像其他参数一样对待,程序应该按预期工作。

2 4 \# 5 6

2 4 '#' 5 6

2 4 "#" 5 6

请注意,# 只是一个单词开头的注释字符,因此这也应该有效:

2 4#5 6

关于c - 无法将 '#' 字符作为命令行参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58837835/

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