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;
}
}