关于 fegts ( ) 丢 每 行 首 个 字符 的 问题
引用 3 楼 turingo 的 回复 : fgets 函数 从 文件 结构体 指针 stream 中 读取 数据 ， 每 次 读取 一 行 。 读取 的 数据 保存 在 buf 指向 的 字符 数 组 中 ， 每 次 最多 读取 bufsize-1 个 字符 （ 第 bufsize 个 字符 赋 ' \ 0 ' ） ， 如果 文件 中 的 该 行 ， 不足 bufsize 个 字符 ， 则 读完 该 行 就 结束 。 如若 该 行 （ 包括 最后 一 个 换行符 ） 的 字符数 超过 bufsize-1 ， 则 fgets 只 返回 一 个 不 完整 的 行 ， 但是 ， 缓冲区 总是 以 NULL 字符 结尾 ， 对 fgets 的 下 一 次 调用 会 继续 读 该 行 。 函数 成功 将 返回 buf ， 失败 或 读到 文件 结尾 返回 NULL 。 因此 我们 不 能 直接 通过 fgets 的 返回 值 来 判断 函数 是否 是 出错 而 终止 的 ， 应该 借助 feof 函数 或者 ferror 函数 来 判断 。 仔细 阅读 上面 内容 ， 看 看 问题 在 哪 ， 另外 也 可以 看 看 ferror 的 情况 。 嗯 ， 设置 断 点 看到 读到 buffer [ 256 ] 里面 的 就 是 丢失 之后 的 ， 我 试试 看 ferror 的 情况
