我在电路板9x9上编程游戏(这是一个char 9x9数组)。我写了一个方法,根据下面的方案将当前游戏状态保存在一个文件中:
board.plansza[0][0]
board.plansza[0][1]
board.plansza[0][2]
board.plansza[0][3]
(...)
*points in int*
(每行只有一个字符/空格/数字)
现在我需要一种能够读取此文件并将数据放回同一种数组中的方法(如果有人决定停止播放,保存游戏然后想继续以前的状态)作为点的变量。 问题是,保存文件中的某些行只是一个空格('')而且我尝试过的所有方法都因此无法正确读取。
我尝试过的最新方式(失败):
for (int i = 0; i < ROZMIAR; i++){
for (int j = 0; j < ROZMIAR; j++){
zapis << board.plansza[i][j] << endl;
}
}
zapis << user.pkt << endl;
如果某些行只包含空格(我不想忽略),如何逐行读取文件?
答案 0 :(得分:3)
使用getline()
,如下所示:
#include <fstream>
#include <string>
int main()
{
std::ifstream infile("thefile.txt");
std::string line;
char matrix[10][2];
int i = 0;
while(std::getline(infile, line))
{
std:cout << line << std::endl;
if(line .find_first_not_of(' ') != std::string::npos)
{
// There's a non-space.
matrix[i++][0] = line[0];
}
}
return 0;
}