程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 C 中,如何从命令行接收参数“q w; e r'(包括引号)?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在 C 中,如何从命令行接收参数“q w; e r'(包括引号)??

开发过程中遇到在 C 中,如何从命令行接收参数“q w; e r'(包括引号)?的问题如何解决?下面主要结合日常开发的经验,给出你关于在 C 中,如何从命令行接收参数“q w; e r'(包括引号)?的解决方法建议,希望对你解决在 C 中,如何从命令行接收参数“q w; e r'(包括引号)?有所启发或帮助;

命令行就像

./a.out "q w; e r'

我有一个接收字符串作为参数的函数,所以我使用了

Function_name(argv[1]);

事实证明,当我的输入包含空格、引号和分号等时,这将不起作用。因此,我正在虑将命令行输入保存为字符串变量并使用该变量调用函数。

解决方法

对于大多数 sHell,如果有空格,您需要用引号将文本括起来,如果它们与周围的引号冲突,则需要转义引号。换句话说:

class Comment(models.Model):
post = models.ForeignKey(Post,related_name='comments',on_delete=models.CASCADE)
name = models.ForeignKey(User,on_delete=models.CASCADE)
comment = models.TextField()
date_added = models.datetiR_227_11845@eField(auto_now_add=TruE)

def __str__(self):
    return self.comment
,

根据您输入的输入量和奇怪程度,您可能需虑从文件中读取它。参数的处理,尤其是特殊字符,非常依赖于环境。允许您运行所需代码的命令行在 Windows 和各种类 Unix 的 sHell 之间会有所不同。然而,传递文件名是相当标准的,您的文件可以包含任意字节。

,

这与 C 无关,而是与启动程序的 sHell 或其他界面有关。

在大多数 Unix sHells 中,您可以通过将每个嵌入的单引号 (') 转换为 '\'' 并将整个字符串括在单引号中来转义命令行参数:

./a.out '"q w; e r'\'     # here you can simplify the terminaTing '\''' to '\'
./a.out 'Omar m'\''a tuer'

如果您的 sHell 是 bash,您可以通过修改此 trick 来创建一个 q cmd ... 别名,该别名将调用 cmd命令行作为其单个参数传递:

alias q='_l=$(fc -nl -0); _l=${_l#*q }; "${_l%% *}" "${_l#* }" #'

然后用作:

q ./a.out "q w; e r'

例:

$ ./x.out(){ printf "{%s}\n" "$@"; }
$ q ./x.out "q w; e r'
{"q w; e r'}

大佬总结

以上是大佬教程为你收集整理的在 C 中,如何从命令行接收参数“q w; e r'(包括引号)?全部内容,希望文章能够帮你解决在 C 中,如何从命令行接收参数“q w; e r'(包括引号)?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:e