2016-04-04 97 views
-3

我不是C程序員,我只是想從一個code.So我得到的信息修改後的代碼是在這裏 http://pastebin.com/XYZXqzEW加括號,文件輸出不正確

唯一的區別是,我想打印索引之後分爲F file.Firstly我有打開的文件

FILE *f; 
f = fopen("new2.txt", "a"); 

和後者我已經包含括號周圍的fprintf中

if (xflg){ 
      index = m * nxy + l*nx + k; 
      fprintf(f,"%5d\n",index); 
    } else { 
     index = m * nxy + k*ny + l; 
     vel[index] = velocity; 

原始VERSI上是

for (l=0; l<ny; l++) 
      { 
      if (xflg) 
        index = m * nxy + l*nx + k; 
      else 
       index = m * nxy + k*ny + l; 
       vel[index] = velocity; 
/*    fprintf(stdout,"%.1f %.1f %.1f ", this_z, this_x, velocity); */ 
      } 
     } 
     } 
    } 

221行上是FWRITE聲明

yes = fwrite(vel, nxyz*sizeof(float), 1, f1_out); 

當我編譯和運行代碼,我得到了base.mod(輸出文件)的所有zeros.Why?

+0

哪個基礎文件?更明確。用這麼少的信息很難回答你的問題。 –

+2

看[問]並提供[mcve]。不要只發布外部鏈接! – Olaf

+0

...你添加了哪些大括號? –

回答

1

你可能想這樣的:

for (l=0; l<ny; l++) 
{ 
    if (xflg) 
    index = m * nxy + l*nx + k; 
    else 
    index = m * nxy + k*ny + l; 

    vel[index] = velocity; 

    fprintf(f,"%5d\n",index); //<<< line added 

    /* fprintf(stdout,"%.1f %.1f %.1f ", this_z, this_x, velocity); */ 
} 

或也許這:

for (l=0; l<ny; l++) 
{ 
    if (xflg) 
    {         //<<< brace added 
    index = m * nxy + l*nx + k; 
    fprintf(f,"%5d\n",index);   //<<< line added 
    }         //<<< brace added 
    else 
    index = m * nxy + k*ny + l; 

    vel[index] = velocity; 
    /* fprintf(stdout,"%.1f %.1f %.1f ", this_z, this_x, velocity); */ 
} 

我剛剛添加的fprintf線沒有任何支撐。

你的代碼縮進很少,這就是你有困難的原因之一。

這是你的原代碼,完全和我一樣,但上面沒有fprintf(f,"%5d\n",index);

for (l=0; l<ny; l++) 
      { 
      if (xflg) 
        index = m * nxy + l*nx + k; 
      else 
       index = m * nxy + k*ny + l; 
       vel[index] = velocity; 
/*    fprintf(stdout,"%.1f %.1f %.1f ", this_z, this_x, velocity); */ 
      } 

我希望你明白,現在我的意思是「劣質壓痕」,爲什麼正確的縮進是非常重要的。