Skip to content

string char* 问题 #79

Open
Open
@lix19937

Description

@lix19937

error version


  方法1 
  std::vector<const char*> inner_argv{
      (char*)"./consumer",
      (char*)"-g",
      (char*)"GWM_MULTIPLE_CAMERA",
      (char*)"-m",
      (char*)"0x1101 1111 0000 0",
      (char*)"-N",
      (char*)"/opt/nvidia/nvmedia/nit/",
      (char*)"-c",
      (char*)"img2d",
      (char*)"-e",
      (char*)"--late-attach",
      (char*)"-i",
      (char*)"1",
      (char*)"-k",
      (char*)"3",
      (char*)"-f",
      (char*)"-q",
      (char*)"m"};

方法2 

  // nni_consumer.conf
./consumer
-g
GWM_MULTIPLE_CAMERA
-m
0x1101 1111 0000 0
-N
/opt/nvidia/nvmedia/nit/
-c
img2d
-e
--late-attach
-i
1
-k
3
-f
-q
m 

std::string trim(const std::string& str) {
  size_t start = str.find_first_not_of(" \t\n\r");
  size_t end = str.find_last_not_of(" \t\n\r");
  return (start == std::string::npos) ? "" : str.substr(start, end - start + 1);
}

  std::ifstream ifs("nni_consumer.conf");
  std::string line;
  while (std::getline(ifs, line)) {
    if (!line.empty()) {
      std::string trimmed_line = trim(line);

      if (!trimmed_line.empty()) {
        inner_argv.push_back(trimmed_line.c_str());
        printf("=%s|\n", trimmed_line.c_str());
      }
    }
  }

error version

  std::vector<const char*> inner_argv{};

  std::vector<std::string> stable_strings;
  std::ifstream ifs("nni_consumer.conf");
  if (ifs.is_open()) {
  } else {
    printf("error, file not open\n");
  }

  std::string line;
  while (std::getline(ifs, line)) {
    if (!line.empty()) {
      std::string trimmed_line = trim(line);

      if (!trimmed_line.empty()) {
        stable_strings.push_back(trimmed_line);
        inner_argv.push_back(stable_strings.back().c_str());
        printf("|%s|\n", inner_argv.back().c_str());
      }
    }
  }

  auto argc = int(inner_argv.size());
  for (int idx=0; idx<argc; ++idx)
    printf("|%s|\n", inner_argv[idx]);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions