C与C++的文件操作

来源:互联网 发布:mac更改管理员名称 编辑:程序博客网 时间:2024/05/29 19:09

C语言的文件操作

通过定义两个文件类型的指针, 利用C库的文件操作函数,(fopen,,)对文件进行打开、关闭、读写操作
然后利用getc一次从输入流stdin读取一个字符,putc再把这个字符写到输出流stdout
最后进行end of file检测

#include<stdio.h>#include<stdlib.h>int main (int argc, char* argv[]){    FILE *in,  *out;    int ch;    if(argc != 3)    {        fprintf(stderr, "请输入格式:copyfile sourcefile dircfile \n");         exit(EXIT_FAILURE);    }    if( (in = fopen(argv[1],"rb")) == NULL) //可读的二进制文件    {        fprintf(stderr, "打开文件失败 %s\n", argv[1] );        exit(EXIT_FAILURE);    }    if((out =fopen(argv[2],"wb")) == NULL)    {        fprintf(stderr, "打开文件失败 %s\n", argv[2] );        fclose(in);        exit(EXIT_FAILURE);    }    while(ch = getc(in) != EOF)    {        if(putc(ch,out) == EOF)        {            break;        }    }    if(ferror(in))        printf("读取文件%s 失败\n",argv[1] );    if(ferror(out))        printf("读取文件%s 失败\n",argv[2] );    printf("successful copy file");    return 0;}// cmd终端下运行  file.exe source.exe dir.exe

C++文件操作

C++通过 ifstream ofstream 类,定义对象,调用相应的方法就可以实现同样的功能。

#include <fstream>#include <iostream>using namespace std;int main(int argc ,char*  argv[]){    ifstream in;  //文件输入流对象     ofstream out; //文件输出流对象     //或者使用构造函数 ofstream out("test.txt");    //写操作    out.open("test.txt");    if(!out)    {        cout<<"open file failed"<<endl;        return 0;    }   for(int i=0;i<10;i++)   {        out<<i; //数据流出到out对象的文件   }   out<<endl;   out.close();   //读操作    in.open("test.txt");    if(!in)    {        cout<<"open file failed"<<endl;        return 0;    }    char ch;    while(in >> ch)  //把文件流入ch    {        cout << ch;  //再流出到终端    }    in.close();    return 0;}

ofstream out(“test.txt”, ios::app);
ios::in 可读
ios::out 可写
ios::binary 以二进制形式打开
ios::app 写入的数据将追加到文件末尾
ios::trunk 删除文件原来已存在的内容
ios::nocreat 如果不存在将无法打开
ios::noreplece 如果不存在 试图用open打开将返回一个错误。

原创粉丝点击