C++ argv 参数不从命令行解析 *
c++ argv argument not parsing * from command line
我的命令行输入中有*
字符的问题。
命令如下:
2.exe input.txt output.txt + 2
2.exe input.txt output.txt - 2
2.exe input.txt output.txt * 2
一切都很完美,除了最后一个。不知何故,它不会从命令行获取*
字符。如果我放'*'
它有效,但这不是这个想法。
搜索了所有网络,我得到的最接近的是某处提到的一些全局变量,但不知道该怎么做。这是我的代码
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main(int argc, char * argv[])
{
ifstream infile(argv[1]);
ofstream outfile(argv[2]);
if (infile.is_open() && infile.good()) {
int num;
int sum = 0;
string arg = string(argv[3]);
int val = atoi(argv[4]);
while(infile >> num)
{
if(arg == "+") sum = num + val;
else if(arg == "-") sum = num - val;
else sum = num * val;
cout << "SUM: " << num << endl;
cout << "SUM: " << sum << endl;
outfile << sum << " ";
}
outfile.close();
} else {
cout << "Faila ne se otvarq";
}
return 0;
}
因为 Shell 的扩展,*
被 shell 扩展到当前目录下的所有文件中,你应该使用
2.exe input.txt output.txt '*' 2
或
2.exe input.txt output.txt * 2
相关文章:
- 从命令行c++发送文本文件名
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 数组长度,为什么从命令行获取时不能使用它?
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 通过 Openssl 命令行加密,通过 c++ 解密
- CMake "--target install"无需"--build"命令行
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 使用 C++ 将命令行参数拆分为参数/向量
- 在VS2013中使用devenv (C++)传递命令行参数argv
- C++ argv 参数不从命令行解析 *
- 如何在 Visual Studio 2015 调试中将'%'符号作为命令行参数 (argv) 传递?
- 命令行上的输入在什么时候解析为 node.js 中的 process.argv
- 正在将命令行解析为argv数组
- 更改命令行参数argv
- 命令行参数:argv
- 尝试从命令行获取输入时出现char**argv[]segfault
- 如何在C++生成器的应用程序形式中读取命令行(argv)