c++ - C++ 2D 网格数组,从文件中读取和插入数组值
问题描述
我创建了一个代码,它将我的数组输出到一个二维网格中,比如 x 和 y 轴。目前的代码和输出:
代码:
char array[9][9];
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
array[i][j] = '0';
}
}
for (int i = 0; i < 9; i++)
{
cout << i << " ";
for (int j = 0; j < 9; j++)
{
cout << array[i][j] << " ";
}
cout << endl;
}
cout << " ";
for (int i = 0; i < 9; i++)
cout << i << " ";
cout << endl;
输出:
0 O O O O O O O O O
1 O O O O O O O O O
2 O O O O O O O O O
3 O O O O O O O O O
4 O O O O O O O O O
5 O O O O O O O O O
6 O O O O O O O O O
7 O O O O O O O O O
8 O O O O O O O O O
0 1 2 3 4 5 6 7 8
现在我有一个文件,里面充满了我想标记的坐标。问题是我如何标记所有坐标,比如在我完成的网格上标记的所有坐标上放置一个“1”。首先,我已经声明了我的 ifstream 并设法读取了它的内容。现在我被困住了!任何帮助,将不胜感激。
这是文件内容:
[1, 1]
[1, 2]
[1, 3]
[2, 1]
[2, 2]
[2, 3]
[2, 7]
[2, 8]
[3, 1]
[3, 2]
[3, 3]
[3, 7]
[3, 8]
[7, 7]
解决方案
ifstream
有一个获取文件路径的构造函数。要从.txt
文件中读取字符,您所要做的就是使用对象中的>>
运算符ifstream
到您的输入变量。要检查您是否完成阅读,您可以简单地使用对象.eof
的功能ifstream
。
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ifstream file("/path/to/your/file/yourfile.txt"); // From the root directory (in linux)
size_t size = 9; // Make this program to be more dynamically
char array[size][size];
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
array[i][j] = '0';
}
}
int x, y;
char padding;
while (!file.eof()) // While there is somthing more in the file
{
file >> padding >> x >> padding >> y >> padding;
/*
read char '[', then 'x'(number), then ',', then 'y'(number), and finally ']'
*/
array[x][y] = '1'; // Place the mark
}
for (int i = 0; i < size; i++)
{
cout << i << " ";
for (int j = 0; j < size; j++)
{
cout << array[i][j] << " ";
}
cout << endl;
}
cout << " ";
for (int i = 0; i < size; i++)
cout << i << " ";
cout << endl;
return 0;
}
推荐阅读
- android - 使用 socket.io 的 Android 点对点视频传输
- python-3.x - 给定自定义输入的树形成问题
- mongodb - 无法通过 mongoDB 中的动态键访问对象值
- javascript - 有没有一种编程语言支持解析定制的 DSL?
- json - 在odoo中制作一个控制器来处理json
- javascript - 3d transform: DOM order taking priority over z-transform
- javascript - 如何从 div 调用函数并呈现返回的 json 对象?
- mapbox - 覆盖水面但低于地表的数据:Mapbox-gl.js
- python - 根据序列填充缺失值并根据上一行或下一行填充第二行
- javascript - 检查 .js 文件的最佳方法是什么?