检查文件末尾是否有回车符

标签 c string

我有一个文本文件。我必须检查以确保文件以回车符结尾。如果它不是以 1 结尾,那么我想插入一个。该文件现在具有正确的格式,我可以使用它进行进一步解析。它应该可以在 Windows 和 Linux 环境中工作。

最佳答案

尝试这样的事情(未测试):

FILE *file = fopen(path, "r+");
char c;
fseek(file, -1, SEEK_END);
fread(&c, 1, 1, file);
if (c != '\r') { /* This will work on Win/Linux and also on a Mac */
  fseek(file, 0, SEEK_END);
  fprintf(path, "\r");
}
fclose(file);

注意:您确定您的意思是 0x0D 吗?在 Linux 中,行以 0x0A (\n) 结束,在 Windows 中以组合 0x0D 0x0A (\r\n) 结束。

关于检查文件末尾是否有回车符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7307255/

相关文章:

c++ - 在 C 中开始图形界面编程的最佳方法是什么?

c - 在 C 中重写 strlen()

java - 只从字符串中获取 URL 部分

python - 为什么 mystring.split ("").append ("foo") 什么都不返回?

c++ - 如何修复 C/C++ 中的堆损坏?

更改数组中确切数量的元素的位置

c - 仅当所有字节数组可用时如何组装多个字节数组

c - 在打包/解包结构之间切换

javascript - 使用变量的值作为另一个变量的名称

Java String ReplaceAll 方法给出非法重复错误?