gpt4 book ai didi

c++ - 将文件中的文本加载到二维数组 (C++)

转载 作者:搜寻专家 更新时间:2023-10-31 02:00:32 25 4
gpt4 key购买 nike

我正在制作游戏,我已将 map 数据存储在大小为 [34][10] 的二维数组中。最初,我使用一个简单的函数生成 map 来填充数组,并使用以下代码将这些数据保存到一个文件中:

ofstream myFile;
myFile.open("map.txt");

for ( int y = 0 ; y < MAP_HEIGHT ; ++y )
{
for ( int x = 0 ; x < MAP_WIDTH ; ++x )
{
myFile << m_acMapData[x][y];
}
myFile << '\n';
}

myFile.close();

这会输出一个文本文件,它看起来像我想要的那样。但是,当我尝试使用以下代码读回它时,我遇到了一大堆访问冲突并且它在运行时崩溃了:

ifstream myFile;
int i=0;
int j=0;
char line[MAP_WIDTH];

myFile.open("map.txt");
while (!myFile.eof())
{
myFile.getline(line, MAP_WIDTH);
for ( i=0; i<MAP_WIDTH; i++ )
{
m_acMapData[i][j] = line[i];
}
++j;
cout << line;
}

有人知道问题出在哪里吗?

最佳答案

while (!myFile.eof())
{
myFile.getline(line, MAP_WIDTH);

应该是:

while ( myFile.getline(line, MAP_WIDTH) )
{

然而,读入 std::string 会更安全:

string line:
while ( getline( myFile, line ) )
{

您可能还想阅读我关于此主题的博客,网址为 http://punchlet.wordpress.com .

关于c++ - 将文件中的文本加载到二维数组 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1872949/

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