zoukankan      html  css  js  c++  java
  • UNIX2DOS工具

    今天写了一个UNIX2DOS工具,用于把UNIX系统的文本转换成DOS(Windows)下支持的文本。

    两大操作系统文本主要的不同在于换行时UNIX里只有 '\n'字符,而在DOS(Windows)下变成了'\r\n'。


    废话不多说,此工具用C语言写成,源代码如下:

    //unix2dos
    //
    #include <stdio.h>
    #include 
    <stdlib.h>

    int main(int argc,char *argv[])
    {
        
    int ch;
        FILE 
    *fpinPtr,*fpoutPtr;

        
    if (argc!=3)
        {
            printf(
    "UNIX2DOS program.\n\n");
            printf(
    "Usage: command source_file target_file\n");
            printf(
    "Usage example: \"unix2dos src.txt obj.txt\"\n");
            exit(EXIT_FAILURE);
        }

        
    if ((fpinPtr=fopen(argv[1],"rb"))==NULL)
        {
            printf(
    "Input file \"%s\" could not be opened\n",argv[1]);
            exit(EXIT_FAILURE);
        }

        
    if ((fpoutPtr=fopen(argv[2],"wb"))==NULL)
        {
            printf(
    "Outout file \"%s\" could not be opened\n",argv[2]);
            exit(EXIT_FAILURE);
        }

        
    while(!feof(fpinPtr))
        {
            ch
    =fgetc(fpinPtr);
            
    if(ch>-1 && ch != '\n')
            {
                fputc(ch,fpoutPtr);
            }
            
    else if(ch>-1)
            {
                fputc(
    '\r',fpoutPtr);
                fputc(ch,fpoutPtr);
            }

        }

        fclose(fpinPtr);
        fclose(fpoutPtr);

        
    return 0;
    }

    当然,还有一个附加产品:DOS2UNIX,源代码如下:


    //dos2unix
    //
    #include <stdio.h>
    #include 
    <stdlib.h>

    int main(int argc,char *argv[])
    {
        
    int ch;
        FILE 
    *fpinPtr,*fpoutPtr;

        
    if (argc!=3)
        {
            printf(
    "DOS2UNIX program.\n\n");
            printf(
    "Usage: command source_file target_file\n");
            printf(
    "Usage example: \"DOS2UNIX src.txt obj.txt\"\n");
            exit(EXIT_FAILURE);
        }

        
    if ((fpinPtr=fopen(argv[1],"rb"))==NULL)
        {
            printf(
    "Input file \"%s\" could not be opened\n",argv[1]);
            exit(EXIT_FAILURE);
        }

        
    if ((fpoutPtr=fopen(argv[2],"wb"))==NULL)
        {
            printf(
    "Outout file \"%s\" could not be opened\n",argv[2]);
            exit(EXIT_FAILURE);
        }

        
    while(!feof(fpinPtr))
        {
            ch
    =fgetc(fpinPtr);
            
    if(ch>-1 && ch != '\r')
            {
                fputc(ch,fpoutPtr);
            }
        }

        fclose(fpinPtr);
        fclose(fpoutPtr);

        
    return 0;
    }


    参考代码源:HP UNIX CP命令 ,欢迎各位高手批评指正。 


    Wednesday, May 06, 2009

  • 相关阅读:
    每天一个小算法(Heapsort)
    每天一个小算法(matlab armijo)
    每天一个小算法(Shell sort5)
    每天一个小算法(Shell Sort3)
    每天一个小算法(Shell Sort2)
    Java并发编程:阻塞队列
    Java并发编程:并发容器之CopyOnWriteArrayList
    Java并发编程:并发容器之ConcurrentHashMap
    Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
    豆瓣的前世今生
  • 原文地址:https://www.cnblogs.com/Leon5/p/1450639.html
Copyright © 2011-2022 走看看