2017-01-27 14 views
0

まず、私は私のコンソール上にランダムでユニークな番号を表示するには、次のことをやっていると、特定のファイルに:ファイル内の配列の内容を表示することができません

 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]); 

次の私は表示するには、次のコードを使用しています以前に生成された数値のバイナリ表現を保持する配列の内容。

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

私は、使用しています:fprintf(fp, "%d", arr[loop1]);を私の選択のファイル内にこれらを印刷します。

バイナリ表現がプリントアウトされていないため、コードの最後の部分で何が間違っていますか?任意の提案をいただければ幸いです。

** 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

:あなたを提出し、stdoutに同じことを印刷するには

は、おそらくこれが欲しいです。どういうわけか、ファイルに書かれている内容に影響を与えています。 –

+0

2番目の 'for'ループに' {'はありません。あなたは 'arr [loop1]'を印刷するために別のループを持っていますか? –

+0

いいえ、私はそのコードを使って 'arr [loop1]'を私のコンソールに表示しています。私はこのファイルを私が書いているファイルの中に表示したいと思う。私は自分のコードのより広い範囲を投稿します。 –

答えて

0

このコードスニペットが正しくありません:

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

お知らせブロック{ }の不在?つまり、forループには最初の文だけが含まれています。コードはこれと同等です:

ファイルに arr[-1]を印刷することを意味し
 for (loop1 = loop; loop1 > -1; loop1--) { 
      printf("%d", arr[loop1]); 
     } 
     printf("\n"); 
     fprintf(fp, "%d", arr[loop1]); 

(=未定義の動作!!!)。私のコンソール上のバイナリ表現がまだうまく印刷されている

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

、ファイルが完全にバッファされています。したがって、書き込み後にバッファをフラッシュする必要があります。以下のようなファイルに書き込むコードを変更してください。

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]); 
    fflush(fp); 
} 

バッファがフラッシュされると、内容がファイルに書き込まれます。

は、私はそれはあなたの問題解決を願っています

関連する問題