2017-01-27 8 views
0

Erste Inhalte des Arrays anzuzeigen, ich tue die zufälligen und eindeutige Nummern auf meiner Konsole und in einer bestimmten Datei anzuzeigen folgend:kann nicht in einer Datei

 for (y = 0; y < 10; y++) { 
      printf("unique random number is %d\n", array[y]); 
      fprintf(fp, "unique random number is %d\n", array[y]); 

Next ich den folgenden Code verwenden anzuzeigen der Inhalt eines Arrays, das eine binäre Repräsentation für die zuvor erzeugten Zahlen enthält.

for (loop1 = loop; loop1 > -1; loop1--) 
       printf("%d", arr[loop1]); 
       printf("\n"); 

Ich bin dann mit: fprintf(fp, "%d", arr[loop1]); diese in einer Datei meiner Wahl zu drucken.

Was mache ich falsch in meinem letzten Teil des Codes, da die Binärdarstellung nicht ausgedruckt wird? Irgendwelche Vorschläge würden geschätzt werden.

** EDIT: **

for (y = 0; y < 10; y++) { 
      printf("unique random number is %d\n", array[y]); 
      fprintf(fp, "unique random number is %d\n", array[y]); 
      value = array[y]; 

      for (loop = 0; loop < 1000; loop++) 
      { 
       if (value <= 1) { arr[loop] = 1; break; }  //if value is 1 after dividing put 1 in array 
       if (value % 2 == 0) arr[loop] = 0; 
       else arr[loop] = 1; 

       value = value/2; 
      } 
      for (loop1 = loop; loop1 > -1; loop1--) 
       printf("%d", arr[loop1]); 
       printf("\n"); 
       fprintf(fp, "%d", arr[loop1]);      
     }   
+0

Die binäre Darstellung auf meiner Konsole noch gut ausgedruckt wird. Irgendwie wirkt es sich aus, was in der Datei geschrieben ist. –

+0

Ich bemerke, dass es kein '{' für die zweite 'for' Schleife gibt. Haben Sie eine separate Schleife zum Ausdrucken von 'arr [loop1]'? –

+0

Nein, ich drucke 'arr [loop1]' mit diesem Code auf meine Konsole. Ich möchte dies dann in einer Datei anzeigen, an die ich schreibe. Ich werde einen größeren Bereich meines Codes veröffentlichen. –

Antwort

0

Dieser Code-Schnipsel lösen ist nicht korrekt:

 for (loop1 = loop; loop1 > -1; loop1--) 
      printf("%d", arr[loop1]); 
      printf("\n"); 
      fprintf(fp, "%d", arr[loop1]);      

Beachten Sie die absense eines Blocks { }? Dies bedeutet, dass die Schleife for nur die erste Anweisung enthält. Der Code entspricht dies:

 for (loop1 = loop; loop1 > -1; loop1--) { 
      printf("%d", arr[loop1]); 
     } 
     printf("\n"); 
     fprintf(fp, "%d", arr[loop1]); 

Das bedeutet, dass Sie arr[-1] in die Datei drucken (= nicht definiertes Verhalten !!!).

die gleiche Sache drucken Sie es wahrscheinlich wollen Datei und stdout:

 for (loop1 = loop; loop1 > -1; loop1--) { 
      printf("%d", arr[loop1]); 
      fprintf(fp, "%d", arr[loop1]); 
     } 
     printf("\n"); 
     fprintf(fp, "\n"); 
0

Während in eine Datei geschrieben werden, werden die Dateien vollständig gepuffert. Also müssen Sie den Puffer nach dem Schreiben leeren. Ändern Sie Ihren Code zum Schreiben in eine Datei wie unten.

Sobald der Puffer geleert ist, wird nur der Inhalt in eine Datei geschrieben.

hoffe, dass ich es Ihr Problem