【问题标题】:How to check for "separators" in text files?如何检查文本文件中的“分隔符”?
【发布时间】: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() 函数?

标签: c text separator


【解决方案1】:
  1. 您可以将整个文件读取到一个变量(必须足够大,因此您必须使用动态内存分配),然后使用函数 strtok 和字符 # 将其“划分”为分隔消息分隔器。

  2. 1234563它到新变量,或者你想存储它的任何地方。

有很多方法可以做到这一点,只需选择最适合您的一种即可。

【讨论】:

  • 非常感谢您的回答。直到现在我才知道 strtok 函数。我会仔细看看的 !再次感谢!
猜你喜欢
  • 2021-01-28
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-30
相关资源
最近更新 更多