gpt4 book ai didi

c++ - 将导入的文本文件读取为字符串

转载 作者:太空狗 更新时间:2023-10-29 23:01:48 28 4
gpt4 key购买 nike

我有一个正在使用虚幻引擎 4 构建的项目,现在我正在对字符串进行本地化;我将每个本地化的所有数据都以 JSON 形式保存在已添加到项目源的文本文件中。

我的解决方案资源管理器中的文件结构如下所示:

Games
MyProject (Target)
Source
MyProject
Localization
LOC_ES.txt
...
Accessor.h
Accessor.cpp

我通过以下方式将文件添加到该目录

  1. 右键单击 MyProject(第二个)并单击 add -> new filter
  2. 右键单击 Localization 过滤器并单击 add -> existing item
  3. 从我 PC 上的某个其他目录中选择所有 txt 文件。

首先,我不确定这是否是将文件添加到项目的正确方法。


我按照 this post 中的说明进行操作,但是当我尝试运行这段代码时,我从引擎中得到了这个错误:

First-chance exception at 0x00007FFBF1B68B9C in UE4Editor.exe: Microsoft C++ exception: std::length_error at memory location 0x000000C38BB2A0C0.

这是我输入的代码。我尝试用“LOC_ES.txt”和“Localization/LOC_ES.txt”引用文本文件,但都给我这个错误。

std::ifstream t(TCHAR_TO_UTF8(*("Localization/LOC_" + locale + ".txt")));
std::string str;

t.seekg(0, std::ios::end);
str.reserve(t.tellg());
t.seekg(0, std::ios::beg);

str.assign((std::istreambuf_iterator<char>(t)), std::istreambuf_iterator<char>());

这个文件的实际内容只是 JSON。这是摘录。

{
"Single Player": "Solo Jugador",
"Multiplayer": "Multijugador",
"Options": "Opciones",
"Exit": "Dejar",
"Back": "Volver",

"Normal": "Normal",
"Hard": "Duro",
"Brutal": "Extremo"
}

我以前从来没有用这种方式读过文件,所以我不确定到底是什么问题。

最佳答案

正如您在评论中所写,问题在于文件路径。我在 Visual Studio 中正确添加文件的建议是:

  • 首先,右键单击 LOC_ES.txt 并选择删除。注意不要从文件系统中删除该文件。
  • 将相关文件复制到项目中的文件夹中。
  • 像以前一样将文件添加为现有项目,但现在选择项目文件夹中的文件。

那么你应该使用相对文件路径(取决于可执行文件的构建位置)。

关于c++ - 将导入的文本文件读取为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30320153/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com