小编Lea*_*er 的帖子

如何将命令行参数与c ++中的选项一起传递给函数?

我必须通过使用命令行参数(argv,argc)在c ++中的函数内传递系统配置细节.该函数如下所示:

  function(char * array[]){
    windows_details = array[1];
    graphic_card = array[2];
    ram_detail = array[3];
    procesor_detail = array[4];
  }
 int main(int argc, char *argv[]){
   char *array[] = { argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]};
   function(array);
 }
Run Code Online (Sandbox Code Playgroud)

所以,当我按如下方式执行程序exe时,我得到正确的输出:

 sample.exe windows_32bit nividia 5Gb i7processor
Run Code Online (Sandbox Code Playgroud)

但我关注的是每次值都必须按特定顺序排列,即用户必须注意"windows_details"将是第一个命令行参数,然后是"graphic_card",并且像ram_details和processor_details一样,所以这个解决方案不健壮,即如果值序列互换,结果将不正确.我希望解决方案与序列无关,无论在正确位置要替换的值的顺序,还是将值作为值传递给选项的命令行参数.例如如下:

sample.exe --configuration i7_processor 5GB windows_32bit nividia or
sample.exe --configuration 5GB i7_processor nividia windows_32bit or
sample.exe --configuration nividia windows_32bit 5GB i7_processor
.
.
Run Code Online (Sandbox Code Playgroud)

因此,像上面一样,选项为"--configuration",然后是任何序列中的详细信息.我尝试添加选项部分如下,但它不起作用:

int main(int argc, char *argv[]){
   char *array[] = { argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]}; …
Run Code Online (Sandbox Code Playgroud)

c++ command-line

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

如何解析yaml文件?

我有一个 machine.yml 文件如下:

---
    machines:  
     A:
        ip: ABC
        pass: vass
        user: A

     B:
        ip: XYZ
        pass: grass
        user: B

     C:
        ip: klm
        pass: pass
        user: C
Run Code Online (Sandbox Code Playgroud)

我尝试按如下方式解析上述文件:

        machines = YAML.load_file('machine.yml')
        machines = machines['machines']
        ## Iterate through entries in YAML file
        machines.each_value do |machines| 
           var = [machines["A"]["ip"], machines["A"]["pass"], machines["B"]["ip"],machines["B"]["pass"], machines["C"]["ip"],machines["C"]["pass"]]
           # var should have all the values 
        end
Run Code Online (Sandbox Code Playgroud)

“var”应该包含所有作为字符串的值。但是我无法执行上面的部分,因为它会抛出错误。如何分别解析 YAML 的所有值?

ruby yaml

2
推荐指数
1
解决办法
2895
查看次数

如何在bash中将单引号替换为双引号?

我有以下字符串:

 {"name":"ram","details":[{'subjects':{'service_location':'c:/A.exe','url':'http://A.zip'}}]}
Run Code Online (Sandbox Code Playgroud)

在上面的字符串中,很少有字符串周围有单引号。那么,如何在上面的字符串中用双引号替换单引号并得到如下结果:

 {"name":"ram","details":[{"subjects":{"service_location":"c:/A.exe","url":"http://A.zip"}}]}
Run Code Online (Sandbox Code Playgroud)

bash ubuntu sed

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

标签 统计

bash ×1

c++ ×1

command-line ×1

ruby ×1

sed ×1

ubuntu ×1

yaml ×1