服务器之家

服务器之家 > 正文

C++ 将一个文件读入数组再读出数组的方法

时间:2021-06-30 15:11     来源/作者:除妖人

如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<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);
}

以上这篇C++ 将一个文件读入数组再读出数组的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/riyuedangkong1/article/details/52724531

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部