【发布时间】:2022-01-08 22:44:13
【问题描述】:
我正在构建一个名为 Board 的类,它将从 txt 文件中获取它的详细信息。
#define ROW 25;
#define COL 80;
class Board
{
char _board[ROW][COL] = {0};
public:
Board(string name); // our new constructor - reads map from file.
};
它接收字符串名称,并尝试打开具有特定名称的文件。 如果我们确实在正确的文件中,我想从中读取字符,并将它们复制到板上。 我一直在尝试几件事,总结在这段代码中:
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
Board::Board(string name)
{
string line;
ifstream file(name);
int i = 0;
if (file.is_open())
{
while (!file.eof())
{
(1) getline(file, line);
(2) const char* test = line.c_str();
(3) strcpy_s(_board[i], test);
(4) _board[i] = line;
i++;
}
// MORE FUNCTIONS NOT RELEVANT TO THIS QUESTION
}
}
我收到以下错误: 对于 (3):程序崩溃。 对于 (4):表达式必须是可修改的左值。 对于(1),(2):测试和线路工作良好。
有没有其他更简单的方法可以将字符串复制到 char* 而不使用丑陋的循环,并复制每个字符? 为什么 (3) 会导致我的程序崩溃?
提前致谢!
【问题讨论】: