【发布时间】:2013-02-25 22:53:57
【问题描述】:
我正在开始开发一个新程序(用于学校项目),用户可以在该程序中登录并拥有类似“时间线”的页面。目前它是一个简单的命令行 C 项目。
我想通过以下方式将数据存储在文本文件中:
#
Message here Message here Message here Message here Message here Message here
Message here Message here Message here Message here Message here Message here
Message here Message here Message here Message here Message here Message here
#
Message2 here Message2 here Message2 here Message2 here Message2 here Message2 here
Message2 here Message2 here Message2 here Message2 here Message2 here Message2 here
#
...etc
我知道如何存储数据,它只是一个“最后写入”功能。我的问题与读取该文件有关。 我希望能够检查“#”字符或我放置的任何字符来分隔消息并阅读消息,将其存储在一个结构中,在命令行中显示它,然后继续下一个标记,显示message2 等等。
在 C 中是否有“好”或者我应该说改进的方法?
如果这里没有真正的代码,我很抱歉,我只是在实际开始代码之前提前考虑。
非常感谢任何愿意提供帮助或至少尝试过的人!
【问题讨论】:
-
如果分隔符之间的行数是固定的,那么你甚至不需要分隔符。否则,您必须自己使用 unique 行。 C 对此没有任何花哨的 API。但你的做法是合理的。
-
1) 一次读取一个字符,并采取适当的行动。 2) 使用 strspn()/strcspn() 并采取适当的行动。 3) 使用可怕的 strtok() 函数或其可重入对应函数。 4) 下一步!
-
感谢您的所有回答。我将研究这些功能并看看。顺便说一句,为什么“可怕”的 strtok() 函数?