大佬教程收集整理的这篇文章主要介绍了在 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,请注明来意。