如何将文本文件读取到二维数组中并以 c++ 打印

How to read from text file into two dimensional array and print it in c++

本文关键字:c++ 打印 二维数组 文本 文件 读取      更新时间:2023-10-16

你好,我目前正在学校学习 c++,有一个项目,需要一些帮助。

我必须制作一个程序来读取座位数并将其存储在二维数组中。空座位是主题标签,如果用户购买座位,它就会变成*。座位.txt文件中的奇数行有 15 个席位,偶数个有 20 个席位。

我希望能够在用户购买座位并使用 * 切换 # 时打印并更新它。

座位 txt 文件如下所示:

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
# # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #     
# # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #     
# # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #     
# # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #     
# # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #     
# # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #     
# # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #     
# # # # # # # # # # # # # # # # # # # #

这是我的代码:

const char EMPTY = '#';
char ab[15][20];
ifstream in;
in.open("seats.txt");
for(int i=0;i<15;i++){
for(int x=0; x<20; x++){
in>>ab[i][x];
}
}
for (int i = -1; i < rows; i++)
{
for (int j = -1; j < columns; j++)
ab [i][j] = EMPTY;
}
for (int count = 0; count < 15; count++)
{
cout << endl << "Row " << (count + 1);
for (int count2 = 0; count2 <20; count2++)
{
cout << "  " <<  ab[count] [count2];
}
}
cout << endl;

欢迎来到Stack Overflow!您的代码中有一个小错误,但总的来说,如果您是新手,这非常好!

首先,您需要区分奇数行和偶数行。这可以通过添加if语句并具有不同的循环来轻松修复。(或者,如果它是偶数,您可以将 x 设置为 5 而不是 0(
为了更改文件,您还需要导出到该文件。假设客户订购第 x 行座位 y。最后,考虑添加以下内容:

ofstream out;
out.open("seats.txt");
for (int i = 0; i < 15; i++)
{
for (int j = 0; j < 20; j++)
{
if (i % 2 && j == 15) // 0 is false, 1 is true
{
break;
}
if (i == x && j == y) // assuming these numbers start from 0
{
out << "* ";
}
out << ab[i][j] << " ";
}
out << endl
}

当然,您仍然需要确保在出售前没有占用座位,但这是您要求的。希望这有帮助!:)