c++ 如何将数据追加到const whar_t*

eqqqjvef  于 2022-11-27  发布在  其他
关注(0)|答案(2)|浏览(155)

我正在构建一个基于STM32CubeProgrammer API的项目。文件路径是这样做的,你必须在代码中手动输入文件名。

/* Download File + verification */
#ifdef _WIN32
    const wchar_t* filePath = L"../test file/filename.hex";
#else
    const wchar_t* filePath = L"../api/test file/filename.hex";
#endif

我想让程序显示一个可用的.hex文件列表,要求一个相应的编号,然后将正确的文件名附加到filePath。目标是要求用户输入最少的内容,并尽可能保持简单。
文件路径应保持为常量wchar_t*。
我无法找到任何工作的谷歌和我甚至不知道如何和什么搜索
如何做到这一点?

wrrgggsh

wrrgggsh1#

工作解决方案,感谢@Someprogrammerdude。用户输入尚未实现。

std::wstring projects[] = { L"data.hex", L"blinky.hex" };
        int projectNr = 0;

        std::wstring file = L"../test file/" + projects[projectNr];

#ifdef _WIN32
        const wchar_t* filePath = file.c_str();
#else
        const wchar_t* filePath = L"../api/test file/";
#endif
2guxujil

2guxujil2#

我不知道你为什么需要,或者认为你需要const wchar_t*指针。但是,与其试图通过将文件名附加到路径来“变通”C++标准和编译器,你可以“以其他方式”来做,即,与其附加,你可以只显示文件名,即类似于:

const wchar_t *file_paths[] = {
  "some path/filename1.hex",
  "some path/filename2.hex",
...
};

const wchar_t* select_path() {
  for (const wchar_t *path : file_paths) {
    const wchar_t* filename = get_file_name_from_path(path);
    out_file_name(filename);
  }
  return file_paths[input_number()];
}

相关问题