zoukankan      html  css  js  c++  java
  • C++ 将一个文件读入数组再读出数组

    <pre name="code" class="cpp">#include<iostream>  
    #include<fstream>  
    using namespace std;
    #define MAX_PACK_SIZE   10240
    void main()  
    {  
        char filePath[256];  
        strcpy(filePath,"F:/视频/1.mp4");     //获取路径  
        FILE *pFile;  
        pFile=fopen(filePath,"r+b");   
    	if(pFile==NULL)
    	{
    		cout<<"打开文件失败"<<endl;
    		return ;
    	}
        fseek(pFile,0,SEEK_END);  
       // long nLength=ftell(pFile);    //获取文件长度(字节数)
    	_int64 nLength=_ftelli64(pFile); //获取的长度最大为2的64次方-1个字节
    	cout<<"文件长度为:"<<nLength<<endl;
    	if(nLength==-1)     //读取出错
    	{
    		return;
    	}
        char buff[MAX_PACK_SIZE+1];        //用于存放文件部分数据
    	char filePath1[256];
    	strcpy(filePath1,"E:/图片/Saved Pictures/8.mp4");
    	FILE *File;
    	File=fopen(filePath1,"a+b");    //打开文件以append和读的方式进行,如果不存在文件则创建
    	fseek(pFile,0,SEEK_SET);       //定位到开始位置
        for(_int64 i=0;i+MAX_PACK_SIZE+1<nLength;i+=MAX_PACK_SIZE)
    	{
    		if(i+MAX_PACK_SIZE+1<nLength)
    		{
                fread(buff,sizeof(char),MAX_PACK_SIZE,pFile);  //从文件当前定位的位置开始读取MAX_PACK_SIZE个字节
    		    fseek(pFile,0,SEEK_CUR);      //定位到上一步定位的位置加MAX_PACK_SIZE的位置
    		    fwrite(buff,sizeof(char),MAX_PACK_SIZE,File);   //将buff中的数据添加到File中
    		}
    		else
    		{
    			fread(buff,sizeof(char),nLength-i,pFile);
    			fseek(pFile,0,SEEK_CUR);
    			fwrite(buff,sizeof(char),nLength-i,File);
    		}
    	}
    	fclose(pFile);     //关闭文件
    	fclose(File);
    }  


    
    
  • 相关阅读:
    Python 向列表中添加元素
    [python] 查找列表中重复的元素
    Excel文件的读写
    Oracle EBS AP 取消付款
    Oracle EBS AP取消核销
    Oracle EBS AP 创建贷项通知单并核销到相应发票
    Oracle EBS AR 其他API
    Oracle EBS AR 冲销收款
    Oracle EBS 银行账户API
    Oracle EBS AR 客户API
  • 原文地址:https://www.cnblogs.com/zztong/p/6695194.html
Copyright © 2011-2022 走看看