0

我正在尝试从 .txt 文件中读取一些信息,然后将其存储在一个结构中,但我不知道如何仅选择我需要的单词。

.txt 如下

fstream write_messages("C:\\Messages.txt");

.txt 中的一行如下所示:

18 [@deniseeee]:你好,你好吗?2016-04-26.23:37:58

所以,问题是我有一个结构列表

list<Message*> g_messages;

在哪里

struct Message {
    static unsigned int s_last_id; // keep track of IDs to assign it automatically
    unsigned int id;
    string user_name;
    string content;
    string hour;

    Message(const string& a_user_name, const string& a_content) :
        user_name(a_user_name), content(a_content), id(++s_last_id), hour(currentDateTime())

    {
    }
    Message(){}

};

我想读取文件,以便可以将数字存储到列表的 id 中,将“[@”和“]:”之间的单词存储到用户名中,将下一句存储到内容中,并将日期存储到小时中。

我怎样才能做到这一点?

任何帮助表示赞赏

谢谢

4

1 回答 1

0

问题是:您正在编写此文件以便人们易于阅读,而您应该编写它以便您的程序易于加载。

您正在使用空格来分隔元素,而空格很可能会出现在这些元素中。

我建议使用文本中不太可能使用的符号,例如管道“|”。另外,我会先写固定大小的元素:

18|2016-04-26.23:37:58|deniseeee|你好,你好吗?

然后您可以读取整行,将其拆分为这些管道符号并加载到您的结构字段中。

于 2016-04-27T16:04:28.960 回答