fork(6) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. const int base = 15;
  7. const int height = 5;
  8. const int width = 3;
  9. const int outlength = 8;
  10. const int pattern_max = 5;
  11. int num[base][height][width], c;
  12.  
  13. // デジタル文字パターン「moji.txt」をopenする。
  14. FILE *fpi, *fpo;
  15. fpi = fopen("moji.txt", "r");
  16. if (!fpi)
  17. {
  18. printf("moji.txtをopen出来ません。\n");
  19. exit(-1);
  20. }
  21.  
  22. // デジタル文字パターンを「moji.txt」から読み込む。
  23. for (int b = 0; b < base; ++b)
  24. for (int h = 0; h < height; ++h)
  25. for (int w = 0; w < width;)
  26. {
  27. c = fgetc(fpi);
  28. switch (c)
  29. {
  30. case '0':
  31. num[b][h][w++] = 0;
  32. break;
  33. case '1':
  34. num[b][h][w++] = 1;
  35. break;
  36. default:
  37. break;
  38. }
  39. }
  40.  
  41. // 出力ファイルをopenする。
  42. fpo = fopen("date.txt", "w");
  43. if (!fpo)
  44. {
  45. printf("date.txtをopen出来ません。\n");
  46. exit(-1);
  47. }
  48.  
  49. // 5パターン出力する。
  50. for (int p = 0; p < pattern_max; ++p)
  51. {
  52. // 乱数を利用した8ケタの文字列を作成
  53. int buf[outlength];
  54. for (int i = 0; i < outlength; ++i)
  55. buf[i] = rand() % base;
  56. for (int h = 0; h < height; ++h)
  57. {
  58. for (int b = 0; b < outlength; ++b)
  59. {
  60. for (int w = 0; w < width; ++w)
  61. {
  62. if (num[buf[b]][h][w])
  63. fprintf(fpo, "●");
  64. else
  65. fprintf(fpo, " ");
  66. }
  67. fprintf(fpo, " "); // 文字間を1バイト開ける。
  68. }
  69. fprintf(fpo, "\n"); // 1行の終わり。
  70. }
  71. fprintf(fpo, "\n"); // 1パターンの終わり。
  72. }
  73. fclose(fpi);
  74. fclose(fpo);
  75.  
  76. // ファイル出力内容を画面表示する。
  77. {
  78. char buf[1000];
  79. fpi = fopen("date.txt", "r");
  80. while (fgets(buf, 100, fpi))
  81. printf("%s", buf);
  82. }
  83. return 0;
  84. }
  85.  
Runtime error #stdin #stdout 0s 2140KB
stdin
Standard input is empty
stdout
moji.txtをopen出来ません。