创建convert_line_endings函数

标签 c file-io line-endings

我有一个配置文件,应该有\r\n 行结束样式,我想在我的程序中包含代码来检查和更正格式。 现有代码:

int convert_line_endings(FILE *fp)
{
    char c = 0, lastc = 0, cnt = 0;
    while((c = fgetc(fp)) != EOF)
    {
        if((c == '\n') && (lastc != '\r'))
        {
            cnt++;
        //somehow "insert" a '\r' in here, after the previous char and before the '\n'
        }
        lastc = c;
    }
    return cnt;
}

在 C 编程中,您无法“插入”字符(或者可以吗?!),只需覆盖其中一个即可。有什么建议吗?

最佳答案

不,您无法删除或插入。您可以做的是通过复制除 \r\n 序列之外的所有内容来写入新的临时文件,然后用它覆盖原始文件。

关于创建convert_line_endings函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13095181/

相关文章:

c - 提供指定 NIC、确定子网上 IP 的选项的最佳方式?

java - 如何修改使用 FileInputStream 读取的文本文件的文本

git - 我怎样才能让 Git 真正*忽略*行尾?

git - 'git diff' 中的 ^M 是什么意思?

c - 我可以在 C 字符串中使用哪些值?

c - 在游戏编程中设置屏幕分辨率

c++ - 使用 fscanf 从文件中读取字符

c - 非常基本的加密程序

regex - 查找多行 block

javascript - 如何在以 Typescript 结尾的不同行的字符串中查找子字符串索引