gpt4 book ai didi

C++如何使用字符串和空格而不是整数制作二维数组

转载 作者:行者123 更新时间:2023-11-28 03:30:33 26 4
gpt4 key购买 nike

我正在制作一个数独程序,我有一个 test.txt 文件,内容为

53__7____    
6__195___
_98____6_
8___6___3
4__8_3__1
7___2___6
_6____28_
___419__5
____8__79

“_”实际上是空格。我给你 _ 的原因是你可以看到每行实际上只有 9 个字符。

我在想我必须做一些事情,比如拥有 GRID[行][列],但坦率地说,我不知道我应该把我的数组作为什么类型,我只是迷路了。

我只是想做到这一点,所以当我想输出 GRID[0][0] 时它返回 5,而如果我要求 GRID[0][3] 它返回 ' '。

它正在获取它,所以数组存储数字和空格是我完全迷路的地方

我目前尝试过的:

int main()
{
ifstream myfile(test.txt);
string line;
char sudoku_grid[9][9];

if (myfile.is_open())
{
while(myfile.good())
{
getline(myfile, line);
cout << sudoku_grid[line] << endl;
}
myfile.close();
}
else cout << "error";
return 0;
}

它返回错误第 12 行:“sudoku_grid[line]”中的“operator []”不匹配

这是我通过你们指导的尝试:

int main()
{
ifstream myfile(test.txt);
string line;
char sudoku_grid[9][9];

if (myfile.good())
{
for(int i = 0; i < 9; i++)
{
getline(myfile, line);
for(int j = 0; j < 9; j++)
{
if (line[j] == ' ')
sudoku_grid[j][i] = -1;
else sudoku_grid[j][i] = line[i];
}
cout << sudoku_grid[i] << endl;
}
myfile.close();
}
else cout << "error";
return 0;
}

结果是一个非常尴尬的奇怪字母和一个新数字的答案。

最佳答案

我只会给你算法/逻辑,不会给你写代码。尝试一下,遇到困难再回来。

  1. 在内存二维数组中初始化输出:numbers[9][9]
  2. 打开文件
  3. 直到文件中没有剩余行:
    A。获取行 i
    b.直到行中没有更多字符:
    b1。获取 c 行的每个字符
    b2。如果字符不是空格,则 numbers[i]=c,否则 numbers[i]=-1

你的数组可以由 int 组成,在 b2 中如果遇到 whitespace 你可以插入 -1 来表示没有一个号码。当然,您处理 numbers 数组的代码需要考虑到这一点。

关于C++如何使用字符串和空格而不是整数制作二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12724509/

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