可能重复:
C++有哪些参数解析器库?
如果指定程序运行如下,那么在C++中解析命令行参数的最佳方法是什么:
prog [-abc] [input [output]]
Run Code Online (Sandbox Code Playgroud)
STL中有一个库可以做到这一点吗?
有关:
类似于Linux等效于GetCommandLine和CommandLineToArgv的问题
是否可以在linux中获取原始命令行?文件/ proc/self/cmdline是destroyd.
./a.out files="file 1","file 2" param="2"
Run Code Online (Sandbox Code Playgroud)
版画
./a.outfiles=file 1,file 2param=2
Run Code Online (Sandbox Code Playgroud)
这是垃圾
转义命令行确实适用于所有参数,但第一个参数.
./a.out files=\"fil 1\",\"fil 2\"\ param=\"2\"
Run Code Online (Sandbox Code Playgroud)
版画
./a.outfiles="fil1","fil2" param="2"
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用命令和模拟器解析程序中的另一个程序(这是一个模拟器)的命令行参数.不幸的是,使用文件读取和输出都没有很好的格式化,所以我无法真正获得数据.在命令行显示删除空格的文件内容,整个字符串粘在一起,用,那只能说明该程序的名称(第一个参数我猜).任何人都有任何想法?system()pidcatcatifstream
参数的格式如下:
sudo ./src/yse6 -w -f tracefiles/capacity.3Mbps_400RTT_PER_0.0001.txt -at=eth1 -an=eth0
Run Code Online (Sandbox Code Playgroud)
最后我需要显示与上面格式化相同的字符串.
这是我到目前为止已经完成:(ExecCommand()得到一个命令,它运行在命令行并返回结果string.Secondary()尝试使用文件阅读器来获得文件内容.)
std::string ExeCommand(const char* cmd) {
FILE* pipe = popen(cmd, "r");
if (!pipe) return "ERROR";
char buffer[128];
std::string result = "";
while(!feof(pipe)) {
if(fgets(buffer, 128, pipe) != NULL)
result += buffer;
}
pclose(pipe);
return result;
}
void secondary(string addr){
ifstream file(addr.c_str(),ios::in);
if (file.good())
{
string str;
while(getline(file, str))
{
istringstream ss(str);
cout<<str<<endl;
char num[50];
while(ss …Run Code Online (Sandbox Code Playgroud)