c - 引用 fgets,\0 如何合并到普通文本文件中

标签 c io c99 fgets c89

我只是想知道,当您仅使用普通应用程序(例如 textedit(在 OSX 上))输入文本时,它是否仍会在每个字符串的末尾包含相同的 '\0' 字符,以便在通过 fgets 读取时() 是否会拿起所述字符并停止阅读?

因为我创建了一个普通的文本文件,但是 fgets() 一直在指定长度的末尾停止,而不是在找到那个字符时停止,所以我怀疑它是否真的当我写入普通文本文件时存在。

例如:

How Are You
There

fgets(海峡, 15, 标准输入); 这最终会产生:TherAre You

最佳答案

不,一般来说,文本文件不包含\0 字符。 fgets 读取请求的字符数,或到行尾,以先到者为准。是 fgets 本身附加了 \0。来自man page :

fgets() reads in at most one less than size characters from stream and stores them into the buffer pointed to by s. Reading stops after an EOF or a newline. If a newline is read, it is stored into the buffer. A terminating null byte ('\0') is stored after the last character in the buffer.

关于c - 引用 fgets,\0 如何合并到普通文本文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12400552/

相关文章:

lua - 检查目录是否存在于lua中?

c - C99 结构中的函数重载

c - 下面的宏是做什么的?

c++ - 创建新的 C++ 控制台应用程序时 VC++ 提供 C 库吗?

python - 获取需要很长时间才能运行的目录中的最新文件

gcc - 如何使用 GCC 编译一个独立的环境?

c - 标题有问题

python - 如何使用 Cython 将外部 C 函数导入 IPython Notebook?

winapi - Windows下如何保证异步写入文件的顺序?