【问题标题】:Create convert_line_endings function创建 convert_line_endings 函数
【发布时间】:2012-10-26 22:17:26
【问题描述】:

我有一个应该具有 \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 编程中,你不能“插入”一个字符(或者你可以吗?!),只需覆盖一个或另一个。有什么建议吗?

【问题讨论】:

  • perl -pi -e 's/\n/\r\n/g' file
  • 呃...不,谢谢。我希望它在 C 和我的程序内部,它不应该依赖于 perl。

标签: c file-io line-endings


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-19
    • 2011-05-13
    • 2015-02-20
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多