关于txt文件中数据读取的有关问题,帮忙!

关于txt文件中数据读取的问题,各位大哥帮忙!!
text1.txt中有一万行八列,text2.txt中有一万行一列,怎样将text2.txt中这一列数据替换掉text1.txt中的第四列数据, 自己想这样实现,利用getline()函数分别读取两个文档中的一行,然后利用数组或指针进行替换,麻烦各位大哥帮忙!!
例如::

0 7 0.00000000 0.00010000 0.09060000 255 255 255
0 8 0.00000000 0.00010000 0.07440000 254 254 254
0 11 0.00000000 0.00010000 0.05770000 255 255 255
0 12 0.00000000 0.00010000 0.05790000 255 255 255
0 13 0.00000000 0.00010000 0.05820000 254 254 254
0 14 0.00000000 0.00010000 0.05870000 254 254 254
0 15 0.00000000 0.00010000 0.05930000 255 255 255

------解决方案--------------------
大文件的读写,可以用文件内存映射。
分别读入数据,将替换后结果写在一个临时文件中,删除text1.txt,重命名临时文件为text1.txt。
------解决方案--------------------
C/C++ code

#include<iostream>
#include<string>
#include<fstream>
using namespace std;

//将string类型变量按空格标识符存于二维数组
void GetStringToChar(string str, char buf[8][100])
{
    int i,j=0,k=0,len = str.size();
    for(i=0;i<len;i++)
    {
        if(str[i]==' ')
        {
            buf[j][k]='\0';
            j++;
            k=0;
        }
        else
        {
            buf[j][k++]=str[i];
        }
    }
    buf[j][k]='\0';
}

int main()
{
    ifstream fin1("D:\\text1.txt");
    ifstream fin2("D:\\text2.txt");
    ofstream fout("D:\\result.txt");
    string str1,str2;
    int flag;
    while(getline(fin1,str1)&&getline(fin2,str2)) //按行读入数据
    {
        char buf[8][100];
        GetStringToChar(str1,buf);    //将text1中的的数据按行读入二位字符数组中操作
        strcpy(buf[3],str2.c_str());
        for(int i=0;i<7;i++)
        {
            fout<<buf[i]<<" ";
        }
        fout<<buf[7]<<endl;
    }

}

------解决方案--------------------
除非是一些内存很小的嵌入式设备,不然一万行也没多大,可以一次全部读入内存。
------解决方案--------------------
一次性把两个文件导出到内存的数据库结构,全部替换后再写入到text1.txt文件。