2012-10-26 43 views
0

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

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语言编程,你不能“插入”一个char(或可以吗?!),只是简单地覆盖一个或另一个。有什么建议么?

+0

'perl -pi -e's/\ n/\ r \ n/g'file' – squiguy

+0

呃...不用了,谢谢。我希望它在C和我的程序里面,它不应该依赖于perl。 – BenjiWiebe

回答

0

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

+0

谢谢。我会尝试的。 – BenjiWiebe