【发布时间】:2022-01-01 08:02:27
【问题描述】:
这可能是一个非常基本的 c/c++ 问题,但我现在真的很努力。
我有一个看起来像这样的结构:
struct connection_details {
const char *server, *user, *password, *database, *mysql_port, *ssh_port;
};
我将数据保存在单独的文本文件中。 所以我想写一个函数,它接受一个指向结构的指针,将文本文件的每一行写入结构的相应变量。
void get_config(const std::string &config_path, connection_details *mysql) {
ifstream file(config_path);
string str;
getline(file, str);
mysql->user = str.c_str();
getline(file, str);
mysql->server = str.c_str();
getline(file, str);
mysql->database = str.c_str();
//...
file.close();
}
但是现在 char 指针指向一个不再存在的变量,即使它仍然存在,结构的每个部分都会指向同一个变量,而不是它应该是的内容。
我知道这是一个相当基本的问题,但我已经到了现在无法再用谷歌搜索什么的地步了,所以欢迎大家提供帮助。
【问题讨论】:
-
为什么不把成员也设为
std::strings 呢? -
@Frank 因为人类是由众神创造来取悦他们的。主要是通过毫无意义的痛苦。