Windows命令行中使用*作为程序参数导致argc值异常的问题求助
Windows命令行中使用*作为程序参数导致argc值异常的问题求助
我最近在做一个逆波兰计算器程序,名叫rpc.exe,支持从命令行传入参数进行计算。不过遇到了一个特别奇怪的问题,想请大家帮忙分析下:
当我输入这样的命令时:
E:\>rpc 1 2 3 +
程序里的argc值是5,和预期完全一致,程序运行也没有任何问题。
可一旦参数里包含*,情况就彻底不对劲了。比如输入:
E:\>rpc 1 2 3 *
程序得到的argc值居然变成了32,完全乱套了!这直接导致我的程序在处理乘法操作时彻底失效。
我特意做了测试,如果把乘法操作符换成x或者X,程序就又能正常运行了,只有用*的时候会出现这个问题。
对了,我的开发环境是Windows 8.1系统,用的是Code::Blocks 20.03搭配GCC编译器。
想问问大家,这个问题到底是什么原因导致的?我该怎么修复它呢?
备注:内容来源于stack exchange,提问作者Vinayak Deshmukh
相关产品推荐
相关产品推荐

