文件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
原文地址:https://www.cnblogs.com/zhouyuqing1024/p/12170668.html