*在linux命令行上

Tom*_*Tom 5 c linux

我在C中制作一个小计算器,我想将简单的算术公式传递给我的程序.但它真的不喜欢我将字符'*'传递给我的程序.为什么不?如何在不改变星号的情况下解决这个问题呢?谢谢

wal*_*lyk 9

该字符*是shell扩展匹配文件名的触发器.

有几种方法可以解决它:

  • 打字时逃脱它 mycalc 5 \* 3
  • 将整个表达式放在引号中,并确保计算器的解析器以这种方式工作: myprog "5 * 3"
  • 不要使用命令行:改用您自己的输入.

  • 或者:总是在空目录中运行:) (3认同)
  • 有趣的想法.它可以作为专用*计算目录*进行营销.或者可能是*安全的计算环境*.:-) (2认同)

Pau*_*l R 7

*扩展以匹配当前目录中的所有文件(这称为"globbing").您需要引用或转义*,或使用不同的符号.


nos*_*nos 6

*将调用globbing并扩展到您所在目录中的所有文件.只需引用*并运行您的程序即可

./yourprogram '10 * 10'

要么

./yourprogram 10 '*' 10

对于第一种情况,你的程序只会传递1个参数,argv [1]将是字符串"10*10",第二种情况你将通过3个参数