2016-04-04 7 views
-3

Ich bin nicht C-Programmierer, ich bin nur Informationen von einem code.So Meine bekommen versuche, modifizierte Code ist hier http://pastebin.com/XYZXqzEWNach der Zugabe von Klammern, Dateiausgabe nicht richtig

Der einzige Unterschied ist, dass ich wollte Index drucken in f file.Firstly habe ich offene Datei

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

und letztere ich

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

Original-versi um die fprintf enthalten Klammern haben auf

war
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); */ 
      } 
     } 
     } 
    } 

On line 221 Fwrite Anweisung

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

Wenn ich den Code kompilieren und ausführen, bekam ich die base.mod (Ausgabedatei) mit allen zeros.Why?

+0

Welche Basisdatei ?. Sei expliziter. Es ist schwer, deine Frage mit dieser kleinen Information zu beantworten. –

+2

Siehe [fragen] und stellen Sie eine [mcve] bereit. Und poste nicht nur externe Links! – Olaf

+0

... und welche Klammern hast du hinzugefügt? –

Antwort

1

Sie wollen wahrscheinlich diese:

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); */ 
} 

oder vielleicht dies:

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); */ 
} 

Habe ich nur noch die fprintf Linie ohne Klammern.

Ihr Code ist schlecht eingerückt, das ist einer der Gründe, warum Sie Schwierigkeiten haben.

Dies ist Ihr Original-Code, genau die gleiche wie meine oben, aber ohne die 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); */ 
      } 

Ich hoffe, Sie verstehen jetzt, was ich meinte mit „schlecht Vertiefung“ und warum richtige Vertiefung wichtig ist.

Verwandte Themen