zoukankan      html  css  js  c++  java
  • 文件io

    filecopy_c

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc,char* argv[])
    {
        FILE *in, *out;
        int ch;        //char//getc的返回值是int类型
        if(argc != 3)
        {
            fprintf(stderr,"输入形式:copyFile 源文件名 目标文件名 
    ");
            exit(EXIT_FAILURE);
        }
        if((in = fopen(argv[1],"rb"))==NULL)
        {
            fprintf(stderr,"打不开文件:%s 
    ",argv[1]);
            exit(EXIT_FAILURE);
        }
        if((out = fopen(argv[2],"wb"))==NULL)
        {
            fprintf(stderr,"打不开文件:%s 
    ",argv[2]);
            fclose(in);                            //记得擦屁股,内存的泄露
            exit(EXIT_FAILURE);    //错误输出流
        }
        while((ch=getc(in))!=EOF)//end of file//getc()函数依次从输入流(stdin)读取一个字符,
        {
            if(putc(ch,out)==EOF)//putc()函数把这个字符写入到输出流(stdout)
            {
                break;
            }
        }
        if(ferror(in))//EOF
        {
            printf("读取文件 %s 失败!
    ",argv[1]);
        }
        if(ferror(out))
        {
            printf("读取文件 %s 失败!
    ",argv[2]);
        }
        printf("成功复制1个文件!
    ");
    
        fclose(in);
        fclose(out);
    
        return 0;
        
    }
    /*in和out是我们声明的两个文件指针,它们的类型都是FILE*,分别作为两个I/O流对象使用。磁盘拿到内存
    内存随机分配,指针存放地址,就可以访问*/
    View Code

    filecopy_cpp

    #include <fstream>//头文件包含的一个类ifstream
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        ofstream out;//ifstream这个类定义一个对象in
    
        out.open("test.txt");//从磁盘加载到内存,这叫打开
    
        if(!out)//0打开失败
        {
            cerr << "打开文件失败" << endl;
            return 0;
        }
        for(int i=0;i < 10;i++)
        {
            out << i;
        }
        out << endl;//流一个回车
        out.close();
    
        return 0;
    }
    /*
    以实例为主,事实说话
    */
    View Code

    ifstream_cpp

    #include <fstream>//头文件包含的一个类ifstream
    #include <iostream>
    
    using namespace std;
    
    int main(int argc,char* argv[])
    {
        ifstream in;//ifstream这个类定义一个对象in
    
        in.open("test.txt");//
    
        if(!in)//0打开失败
        {
            cerr << "打开文件失败" << endl;
            return 0;
        }
        char x;
        while(in >> x)//文件流到字符,知道没东西流,退出循环
        {
            cout << x;
        }
        cout << endl;
        in.close();
    
        return 0;
    }
    /*
    以实例为主,事实说话
    */
    View Code

    ofstream_cpp

    #include <fstream>//头文件包含的一个类ifstream
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        ofstream out;//ifstream这个类定义一个对象in
    
        out.open("test.txt");//从磁盘加载到内存,这叫打开
    
        if(!out)//0打开失败
        {
            cerr << "打开文件失败" << endl;
            return 0;
        }
        for(int i=0;i < 10;i++)
        {
            out << i;
        }
        out << endl;//流一个回车
        out.close();
    
        return 0;
    }
    /*
    以实例为主,事实说话
    */
    View Code

    ofstream_cpp两个参数

    #include <fstream>//头文件包含的一个类ifstream
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        ofstream out("test.txt",ios::app);//ifstream这个类定义一个对象in
    
    
        if(!out)//0打开失败
        {
            cerr << "打开文件失败" << endl;
            return 0;
        }
        for(int i=10;i >0;i--)
        {
            out << i;
        }
        out << endl;//流一个回车
        out.close();
    
        return 0;
    }
    /*
    以实例为主,事实说话
    */
    View Code

     fstream_cpp两个参数加or

    #include <fstream>//头文件包含的一个类ifstream
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        fstream fp("test.txt",ios::in|ios::out);//ifstream这个类定义一个对象in
    
    
        if(!fp)//0打开失败
        {
            cerr << "打开文件失败" << endl;
            return 0;
        }
        fp << "Ilovefish!!!!!!!!!!!!!";
        static char str[100];
    
        fp.seekg(ios::beg);//使得文件指针指向文件头,ios::end
        fp >> str;
        cout << str << endl;
        fp.close();
    
        return 0;
    }
    /*
    以实例为主,事实说话
    */
    View Code
  • 相关阅读:
    py 6.4
    py 5.31
    Java集合之LinkedHashMap常用方法解析
    Java集合之HashMap常用方法解析
    Java集合之LinkedList常用方法解析
    Java集合之ArrayList常用方法解析
    Java 基础知识
    Java wait和notifyAll的使用,简单的阻塞队列实现
    The main resource set specified [/tmp/tomcat-docbase.5063501203886177649.7000] is not valid
    zuul网关过滤器实现对GET请求的参数替换
  • 原文地址:https://www.cnblogs.com/zhouyuqing1024/p/12170668.html
Copyright © 2011-2022 走看看