相关疑难解决方法(0)

如何在C++中解析命令行参数?

可能重复:
C++有哪些参数解析器库?

如果指定程序运行如下,那么在C++中解析命令行参数的最佳方法是什么:

prog [-abc] [input [output]]
Run Code Online (Sandbox Code Playgroud)

STL中有一个库可以做到这一点吗?


有关:

c++ command-line arguments

183
推荐指数
8
解决办法
26万
查看次数

GetCommandLine linux*true*等效

类似于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)

c c++ linux windows equivalent

3
推荐指数
1
解决办法
2134
查看次数

从proc/pid/cmdline解析命令行参数

我正在尝试使用命令和模拟器解析程序中另一个程序(这是一个模拟器)的命令行参数.不幸的是,使用文件读取和输出都没有很好的格式化,所以我无法真正获得数据.在命令行显示删除空格的文件内容,整个字符串粘在一起,用,那只能说明该程序的名称(第一个参数我猜).任何人都有任何想法?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)

c++

3
推荐指数
1
解决办法
2820
查看次数

标签 统计

c++ ×3

arguments ×1

c ×1

command-line ×1

equivalent ×1

linux ×1

windows ×1