gpt4 book ai didi

c++ - 将 2D Char 数组保存到 C++ 文件中

转载 作者:行者123 更新时间:2023-11-28 02:48:23 24 4
gpt4 key购买 nike

所以在我的程序中,我有一个二维字符数组 gameField,其中存储了各种字符以表示堡垒、玩家、空地和基地。我试图将这个数组保存到一个文件中,但我尝试做的方式似乎不起作用。这是我的示例代码。

void saveMap()
{
string userMap = directoryName + username + "-map.txt";
ofstream savemap(userMap.c_str());

for (int i = 0; i <= ROWS; i++)
{
for (int j = 0;j <= COLUMNS; j++)
{
savemap << gameField[i][j];
}

savemap << endl;
}

savemap.close();
}

每当我尝试执行此操作时,我总是遇到运行时错误,我想知道是否有人可以解释原因并提供替代方案。

编辑: gameField 是一个字符数组,COLUMNS 等于 50,ROWS 等于 30。我将数组中的每个字符都初始化并设置为一些东西,但每当我调用该函数时,我都会在 Game1.exe 的 0x511cbe20 (msvcr100d.dll) 处收到未处理的异常:0xC0000005:访问冲突读取位置 0x30303030。

最佳答案

您正在尝试访问数组以外的内存。例如,行的有效范围是 [0, ROWS - 1]

我会这样写函数

void saveMap()
{
string userMap= directoryName+username+"-map.txt";

ofstream savemap(userMap.c_str());

int i = 0;

while ( i < ROWS && savemap.write( gameField[i++], COLLUMS ) ) savemap << std::endl;
}

关于c++ - 将 2D Char 数组保存到 C++ 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23635549/

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