gpt4 book ai didi

c++ - 读取文件到内存,遍历数据,然后写入文件

转载 作者:行者123 更新时间:2023-11-30 04:20:58 26 4
gpt4 key购买 nike

<分区>

我想问一个与这篇文章类似的问题: C: read binary file to memory, alter buffer, write buffer to file但答案对我没有帮助(我是 c++ 的新手,所以我无法理解所有内容)

我如何让循环访问内存中的数据,并逐行遍历,以便我可以将其写入不同格式的文件?

这是我的:

#include <fstream>
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>

using namespace std;

int main()
{
char* buffer;
char linearray[250];
int lineposition;
double filesize;
string linedata;
string a;

//obtain the file
FILE *inputfile;
inputfile = fopen("S050508-v3.txt", "r");

//find the filesize
fseek(inputfile, 0, SEEK_END);
filesize = ftell(inputfile);
rewind(inputfile);

//load the file into memory
buffer = (char*) malloc (sizeof(char)*filesize); //allocate mem
fread (buffer,filesize,1,inputfile); //read the file to the memory
fclose(inputfile);

//Check to see if file is correct in Memory
cout.write(buffer,filesize);

free(buffer);
}

感谢您的帮助!

编辑(有关数据的更多信息):

我的数据是大小在 5 到 10 GB 之间的不同文件。大约有3亿行数据。每行看起来像

M359

T359 3520 359

M400

A3592 zng 392

其中第一个元素是字符,其余项可以是数字或字符。我正在尝试将其读入内存,因为逐行循环比读取一行、处理然后写入要快得多。我在 64 位 Linux 中编译。让我知道是否需要进一步澄清。再次谢谢你。

编辑 2我正在使用 switch 语句来处理每一行,其中每行的第一个字符决定如何格式化该行的其余部分。例如'M'表示毫秒,我将接下来的三个数字放入一个结构中。每行都有一个不同的第一个字符,我需要为此做一些不同的事情。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com