怎么从本地a.txt文件中读取数据,经过周期性扩展之后,重新输出到b.txt文件中

如何从本地a.txt文件中读取数据,经过周期性扩展之后,重新输出到b.txt文件中。
        现在遇到了一个很棘手的问题,我需要从本地文件a.txt中读取数据(多行多列),然后将数据经过周期性扩展之后,再重新输出到一个新的b.txt文件中。我写的代码如下:可是一直存在错误,还请大家帮们看一下。
怎么从本地a.txt文件中读取数据,经过周期性扩展之后,重新输出到b.txt文件中
………………………………………………………………………………………………………………………………………………………
怎么从本地a.txt文件中读取数据,经过周期性扩展之后,重新输出到b.txt文件中
        这是本地a.txt文件的一小部分,每一行的前3列分别表示为Lx、Ly以及Lz,初始文件中Lx从1到30,Ly从1到32,Lz从1到13,共12480行数据,每一行的后3列分别为A的体积分数fa、B的体积分数fb以及AB的总体积分数fs。现在需要将Lx以及Ly分别扩大四倍,然后重新输出到b.txt文件中,即Lx从1到120,Ly从1到128,Lz不变,仍从1到13,扩展之后的数据为199680行,仍为6列。
        整个过程大致可以分成3部分,第一步:读取本地文件a.txt中数据;第二步:计算经过周期性扩展之后的数据;第三步:输出数据到新的b.txt文件中。
#include <stdio.h>
int main()
{
//定义for循环变量i、j以及k
int i=0,j=0,k=0;
//定义基板沿x、y以及z方向伸展之前基板的三维指数Lx_1、Ly_1以及Lz_1
int Lx_1=0,Ly_1=0,Lz_1=0;
//定义基板沿x、y以及z方向的伸展倍数L、M以及N
int L=0,M=0,N=0;
//定义基板沿x、y以及z方向伸展之后基板的三维指数Lx_S、Ly_S以及Lz_S
int Lx_S,Ly_S,Lz_S;
//定义中间变量temp、R以及T
int temp=0,R=0,T=0;
//定义数组f存储临时数据
double f[56000][10]={0};
//定义数组fa、fb以及fs分别存储A嵌段的体积分数、B嵌段的体积分数以及AB嵌段共聚物的总体积分数
double fa[40][40][35]={0},fb[40][40][35]={0},fs[40][40][35]={0};
//定义文件指针变量fafbfs
FILE *fafbfs;
//初始化基板的三维指数
Lx_1=30;Ly_1=32;Lz_1=13;
//计算基板的三维指数所在的最大行数再-1(列数为6,前3列分别为基板的三维指数Lx、Ly以及Lz的值,后3列分别为A嵌段、B嵌段以及AB嵌段共聚物的体积分数)
temp=Lx_1*Ly_1*Lz_1;
//读入基板沿x、y以及z方向伸展之前的各点坐标,即_x1y1(表示基板沿x方向以及y方向均未伸展)
fafbfs=fopen("F\\pmj\\morphologies\\fafbfcfs25963660.txt","r");
//成功打开文件fafbfs
if(fafbfs!=NULL)
{
for(i=0;i<temp;i++)
{
for(j=0;j<=5;j++)
{
//Lx、Ly以及Lz的值均为int型,即前3列
if(j==0||j==1||j==2)
{
fscanf(fafbfs,"%4d",&f[i][j]);
}
//fa、fb以及fs的值均为double型,即后3列
else
{
fscanf(fafbfs,"10.8f",&f[i][j]);
}
}
fscanf(fafbfs,"\n");
}
}
//文件fafbfs打开错误
else
{
printf("Error 1.\n");
}
//成功读入基板沿x、y以及z方向伸展之前的各点坐标,关闭文件fafbfs
fclose(fafbfs);
//初始化基板沿x、y以及z方向伸展之前的各点坐标,即_x1y1

printf("i=%d,j=%d",i,j);  //检验程序中的断点

temp=0;
for(i=0;i<Lx_1;i++)
{
for(j=0;j<Ly_1;j++)
{
for(k=0;k<Lz_1;k++)
{
fa[i][j][k]=f[temp][4];
fb[i][j][k]=f[temp][5];
fs[i][j][k]=f[temp][6];
//确保temp的值从0逐1增加到Lx_1*Ly_1*Lz_1-1
temp=temp+1;
}
}
}
//初始化基板沿x、y以及z方向的伸展倍数
L=4;M=4;N=1;
//计算基板沿x、y以及z方向伸展之后基板的三维指数
Lx_S=Lx_1*L;
Ly_S=Ly_1*M;
Lz_S=Lz_1*N;
//计算基板沿x、y、以及z方向伸展之后的各点坐标,即_x4y4(表示基板沿x方向以及y方向均伸展了4倍)
fafbfs=fopen("F:\\pmj\\morphologies\\fafbfs_x4y4.txt","w+");
//成功打开文件fafbfs
if(fafbfs!=NULL)
{
for(i=0;i<Lx_S;i++)
{
//对基板x方向的指数进行取余,判断基板伸展之后x的位置,即i+1
R=(i+1)%Lx_1;
for(j=0;j<Ly_S;j++)
{
//对基板y方向的指数进行取余,判断基板伸展之后y的位置,即j+1
T=(j+1)%Ly_1;
for(k=0;k<Lz_S;k++)
{
//基板z方向未进行伸展,故不需进行取余来判断伸展之后z的位置
if(R!=0)
{
//如果Lx_S不能被Lx_1整除且Ly_S不能被Ly_1整除
if(T!=0)
{
fa[i][j][k]=fa[R][T][k];
fb[i][j][k]=fb[R][T][k];
}
//如果Lx_S不能被Lx_1整除但Ly_S刚好被Ly_1整除
else
{
fa[i][j][k]=fa[R][Ly_1][k];
fb[i][j][k]=fb[R][Ly_1][k];
}
}
else
{
//如果Lx_S刚好被Lx_1整除但Ly_S不能被Ly_1整除
if(T!=0)
{
fa[i][j][k]=fa[Lx_1][T][k];
fb[i][j][k]=fb[Lx_1][T][k];
}
//如果Lx_S刚好被Lx_1整除且Ly_S刚好被Ly_1整除
else
{
fa[i][j][k]=fa[Lx_1][Ly_1][k];
fb[i][j][k]=fb[Lx_1][Ly_1][k];
}
}
//AB嵌段共聚物的总体体积分数等于A嵌段的体积分数与B嵌段的体积分数之和(fs = fa + fb)
fs[i][j][k]=fa[i][j][k]+fb[i][j][k];
//输出基板沿x、y、以及z方向伸展之后的各点坐标,即_x4y4
fprintf(fafbfs,"  %2d  %2d  %2d  %10.8f  %10.8f  %10.8f\n",i,j,k,fa[i][j][k],fb[i][j][k],fs[i][j][k]);
}
}
}
}
//文件fafbfs打开错误2
else
{
printf("Error 2.\n");
}
//基板沿x、y以及z方向伸展之后的各点坐标成功输出,关闭文件fafbfs
fclose(fafbfs);
}
        这是我目前所写的程序,可是在编译过程中仍然有错误,没有达到我要求的结果,特请各位大神指点,万分感激。
------解决思路----------------------
编译出错就没必要问了吧怎么从本地a.txt文件中读取数据,经过周期性扩展之后,重新输出到b.txt文件中
------解决思路----------------------
将编译错误提示贴上来。

偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。

------解决思路----------------------
引用:
文件fafbfs打开错误。下面是代码,不知道错在哪里了?求解。
怎么从本地a.txt文件中读取数据,经过周期性扩展之后,重新输出到b.txt文件中

路径F后面没冒号, 难道不是绝对路径
------解决思路----------------------
#include <stdio.h>
int main() {
    //定义for循环变量i、j以及k
    int i=0,j=0,k=0;
    //定义基板沿x、y以及z方向伸展之前基板的三维指数Lx_1、Ly_1以及Lz_1
    int Lx_1=0,Ly_1=0,Lz_1=0;
    //定义基板沿x、y以及z方向的伸展倍数L、M以及N
    int L=0,M=0,N=0;
    //定义基板沿x、y以及z方向伸展之后基板的三维指数Lx_S、Ly_S以及Lz_S
    int Lx_S,Ly_S,Lz_S;
    //定义中间变量temp、R以及T
    int temp=0,R=0,T=0;
    //定义数组f存储临时数据
    double f[56000][10]={0};
    int d[3];
    //定义数组fa、fb以及fs分别存储A嵌段的体积分数、B嵌段的体积分数以及AB嵌段共聚物的总体积分数
    double fa[40][40][35]={0},fb[40][40][35]={0},fs[40][40][35]={0};
    //定义文件指针变量fafbfs
    FILE *fafbfs;
    //初始化基板的三维指数
    Lx_1=30;Ly_1=32;Lz_1=13;
    //计算基板的三维指数所在的最大行数再-1(列数为6,前3列分别为基板的三维指数Lx、Ly以及Lz的值,后3列分别为A嵌段、B嵌段以及AB嵌段共聚物的体积分数)
    temp=Lx_1*Ly_1*Lz_1;
    //读入基板沿x、y以及z方向伸展之前的各点坐标,即_x1y1(表示基板沿x方向以及y方向均未伸展)
    fafbfs=fopen("F:\\pmj\\morphologies\\fafbfcfs25963660.txt","r");
    //成功打开文件fafbfs
    if(fafbfs!=NULL) {
        for(i=0;i<temp;i++) {
            for(j=0;j<=5;j++) {
                //Lx、Ly以及Lz的值均为int型,即前3列
                if(j==0
------解决思路----------------------
j==1
------解决思路----------------------
j==2) {
                    fscanf(fafbfs,"%d",&d[j]);
                    f[i][j]=d[j];
                }
                //fa、fb以及fs的值均为double型,即后3列
                else {
                    fscanf(fafbfs,"%10.8f",&f[i][j]);
                }
            }
            fscanf(fafbfs,"\n");
        }
    }
    //文件fafbfs打开错误
    else {
        printf("Error 1.\n");
    }
    //成功读入基板沿x、y以及z方向伸展之前的各点坐标,关闭文件fafbfs
    fclose(fafbfs);
    //初始化基板沿x、y以及z方向伸展之前的各点坐标,即_x1y1

    printf("i=%d,j=%d",i,j);  //检验程序中的断点

    temp=0;
    for(i=0;i<Lx_1;i++) {
        for(j=0;j<Ly_1;j++) {
            for(k=0;k<Lz_1;k++) {
                fa[i][j][k]=f[temp][4];
                fb[i][j][k]=f[temp][5];
                fs[i][j][k]=f[temp][6];
                //确保temp的值从0逐1增加到Lx_1*Ly_1*Lz_1-1
                temp=temp+1;
            }
        }
    }
    //初始化基板沿x、y以及z方向的伸展倍数
    L=4;M=4;N=1;
    //计算基板沿x、y以及z方向伸展之后基板的三维指数
    Lx_S=Lx_1*L;
    Ly_S=Ly_1*M;
    Lz_S=Lz_1*N;
    //计算基板沿x、y、以及z方向伸展之后的各点坐标,即_x4y4(表示基板沿x方向以及y方向均伸展了4倍)
    fafbfs=fopen("F:\\pmj\\morphologies\\fafbfs_x4y4.txt","w");
    //成功打开文件fafbfs
    if(fafbfs!=NULL) {
        for(i=0;i<Lx_S;i++) {
            //对基板x方向的指数进行取余,判断基板伸展之后x的位置,即i+1
            R=(i+1)%Lx_1;
            for(j=0;j<Ly_S;j++) {
                //对基板y方向的指数进行取余,判断基板伸展之后y的位置,即j+1
                T=(j+1)%Ly_1;
                for(k=0;k<Lz_S;k++) {
                    //基板z方向未进行伸展,故不需进行取余来判断伸展之后z的位置
                    if(R!=0) {
                        //如果Lx_S不能被Lx_1整除且Ly_S不能被Ly_1整除
                        if(T!=0) {
                            fa[i][j][k]=fa[R][T][k];
                            fb[i][j][k]=fb[R][T][k];
                        }
                        //如果Lx_S不能被Lx_1整除但Ly_S刚好被Ly_1整除
                        else {
                            fa[i][j][k]=fa[R][Ly_1][k];
                            fb[i][j][k]=fb[R][Ly_1][k];
                        }
                    } else {
                        //如果Lx_S刚好被Lx_1整除但Ly_S不能被Ly_1整除
                        if(T!=0) {
                            fa[i][j][k]=fa[Lx_1][T][k];
                            fb[i][j][k]=fb[Lx_1][T][k];
                        }
                        //如果Lx_S刚好被Lx_1整除且Ly_S刚好被Ly_1整除
                        else {
                            fa[i][j][k]=fa[Lx_1][Ly_1][k];
                            fb[i][j][k]=fb[Lx_1][Ly_1][k];
                        }
                    }
                    //AB嵌段共聚物的总体体积分数等于A嵌段的体积分数与B嵌段的体积分数之和(fs = fa + fb)
                    fs[i][j][k]=fa[i][j][k]+fb[i][j][k];
                    //输出基板沿x、y、以及z方向伸展之后的各点坐标,即_x4y4
                    fprintf(fafbfs,"  %2d  %2d  %2d  %10.8f  %10.8f  %10.8f\n",i,j,k,fa[i][j][k],fb[i][j][k],fs[i][j][k]);
                }
            }
        }
    }
    //文件fafbfs打开错误2
    else {
        printf("Error 2.\n");
    }
    //基板沿x、y以及z方向伸展之后的各点坐标成功输出,关闭文件fafbfs
    fclose(fafbfs);
}