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;
}
}
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;
}
}
相关文章推荐
- C语言栈的实现及利用栈实现二进制到八进制的转换
- Java+Windows+ffmpeg实现视频转换
- 『windows』获得MAC地址的C语言实现
- C语言实现矩阵行列转换
- C语言编程—清空键盘缓冲区,Linux和Windows下完美实现(转)
- c#实现c语言memcpy各种类型转换
- 数据结构(C语言)读书笔记5:栈的应用之数制转换及C语言代码实现
- C语言实现任意进制的转换,主要注意代码的小技巧
- 整型数组处理算法(十四)不用库函数,用C语言实现将一整型数转换成字符串
- RGB HSV HLS三种色彩模式转换(C语言实现)
- C语言实现int转换字符串的一种实现
- 全角和半角相互转换(C语言实现)
- Java+Windows+ffmpeg实现视频转换
- c语言之辗转相除法实现十进制转换为八进制
- C语言通过函数实现 itoa()的功能 将整数转换成字符串 并实现进制转换
- 用C语言实现中文到unicode码的转换
- Linux、windows下回车换行格式转换 回车换行结尾转换
- 修改编译器选项实现DLL项目与WINDOWS项目的转换
- Windows上C语言实现设置控制台的颜色
- C语言实现任意进制的转换,主要注意代码的小技巧