将文本文件读入结构

时间:2016-04-27 05:21:30

标签: visual-c++ structure fstream requirements.txt

我试图从.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中,这个词在&#34; [@&#34;和&#34;]:&#34;进入user_name,下一句话进入内容,日期进入小时。

我该怎么做?

感谢任何帮助

谢谢

1 个答案:

答案 0 :(得分:0)

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

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

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

  

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

然后你可以读取整行,将它们拆分成那些管道符号并加载到你的结构域中。