【问题标题】:NULL Terminator in text files文本文件中的 NULL 终止符
【发布时间】:2017-04-16 15:27:34
【问题描述】:

我正在创建一个程序,它通过命令行逐个字符地读取文本文件的内容。

NULL 值是自动插入还是必须手动添加到文本文件中?

【问题讨论】:

  • 你可以简单地使用EOF,而不是NULL,这意味着文件结束,它会自动插入。 [stackoverflow.com/questions/1782080/…
  • NULL 是一个带有 空指针常量 的宏。文本文件中没有NULL 字符或空指针常量。目前尚不清楚您的意思。请参阅How to Ask 并向您的问题添加更多信息,包括您的问题代码。

标签: c input command-line null-terminated


【解决方案1】:

文本文件在现代平台上不需要有终结符。 (在某些遗留平台上他们确实有一个,但我怀疑这里的情况。)您几乎肯定不应该在文件中写入终止符,因为它可能会导致不期望有终止符的程序出现问题。文件的结尾在读取时充当终止符。

文本 strings 在 C 中是由零终止的字符数组,也就是空字符,助记符 NUL(带有一个 L,它与 C 中的 NULL 不同)。创建字符串时,您确实需要正确终止它们。返回字符串的函数,包括从文件中读取字符串的函数(例如,fgets),会为您终止它们。

【讨论】:

  • @Norman 那个遗留终止符在文本文件中不是NULL,而是例如Ctrl-Z0x1A
  • @WeatherVane 是的,我知道,这就是为什么我没有指定空终止符而只是指定“终止符”。无论如何,我认为这与问题无关,只是一些琐事。 =)
  • 对不起,OP 询问“是自动插入 NULL 值还是必须手动将其添加到文本文件中”,所以可能与问题有关。
  • 这就是我要找的。谢谢你:)
猜你喜欢
  • 2012-02-21
  • 2018-08-19
  • 1970-01-01
  • 2015-02-04
  • 1970-01-01
  • 1970-01-01
  • 2011-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多