您的位置:首页 > 编程语言 > C语言/C++

C语言实现dos2unix函数,Windows的回车换行转换成Unix回车换行

2012-12-06 15:55 302 查看
Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;

Unix系统里,每行结尾只有“<换行>”,即“\n”;

Mac系统里,每行结尾是“<回车>”,即“\r”;

源码:

#include <stdio.h>

#define CR 0x0D // <回车> '\r'
#define LF 0x0A // <换行> '\n'
#define SPACE 0x20 // <空格>

void dos2unix(char* file_name);

int main(void)
{
dos2unix("aaa.txt");
return 0;
}

// C语言实现dos2unix函数,Windows的回车换行转换成Uinx回车换行
void dos2unix(char* file_name)
{
FILE *fp = NULL;

fp = fopen(file_name, "rb+");

if (fp != NULL)
{
char ch;
while (fread(&ch, sizeof(ch), 1, fp) == 1)
{
if (CR == ch)
{
ch = SPACE;
fseek(fp, -1L, SEEK_CUR);
fwrite(&ch, sizeof(ch), 1, fp);
fseek(fp, 1L, SEEK_CUR);
}
}
}

if (fp != NULL)
{
fclose(fp);
fp = NULL;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: