Holey_yan

20140930_KUAS_VisualC++_Exam02

Sep 29th, 2014
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.45 KB | None | 0 0
  1. /************************************/
  2. /** 20140930 Exam 02               **/
  3. /** Maker  : Yan                   **/
  4. /** E-Mail : [email protected] **/
  5. /** Date   : 2014/09/30 pm.11:30   **/
  6. /************************************/
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.  
  11. int main(int argc, char const *argv[])
  12. {
  13.     /* 先開啟檔案並設置寫入模式 */
  14.     //FILE *檔案指標名稱(可自訂)
  15.     FILE *fptr;
  16.     /*fopen 為開啟檔案流,使用方式為:
  17.       fopen("檔案名稱", "模式");
  18.       模式內容如下:
  19.       "r"    讀取文字檔案
  20.       "w"    新建文字檔案並寫入資料
  21.       "a"    將資料附加在該文字檔案之後
  22.       "rb"   讀取二進位檔
  23.       "wb"   新建二進位檔並寫入資料
  24.       "ab"   將資料附加在該二進位檔之後
  25.       "r+"   讀取文字檔案並寫入資料
  26.       "w+"   新建文字檔案並讀取、寫入資料
  27.       "a+"   讀取文字檔案將附加資料在檔案最後
  28.       "rb+"  或 "r+b" 讀取二進位檔並寫入資料
  29.       "wb+"  或 "w+b" 新建二進位檔並讀取、寫入資料
  30.       "ab+"  或 "a+b" 讀取二進位檔將附加資料在檔案最後 */
  31.     fptr = fopen("output.txt", "w");
  32.  
  33.     //進行主程式
  34.     while(1)
  35.     {
  36.         //輸入line number
  37.         int line_number = 0;
  38.         printf("input line numner: ");
  39.         scanf("%d", &line_number);
  40.  
  41.         //對輸入做判斷,小於一視同結束
  42.         if(line_number <= 0)
  43.             break;
  44.  
  45.         //下列程式碼詳細講解請閱[http://pastebin.com/2hSuxsW8]
  46.         for(int i = 1; i <= line_number; i++)
  47.         {
  48.             for(int j = 1; j <= line_number - i; j++)
  49.             {
  50.                 printf(" ");
  51.  
  52.                 /*fprintf = 做對檔案輸出動作,請原理與printf 相同
  53.                   相異僅為printf 為輸出至「螢幕」,fprintf 為輸出至檔案
  54.                   fprintf 使用方式為:
  55.                   fprintf(檔案指標, "輸出內容", "輸出格式"); */
  56.                 fprintf(fptr, " ");
  57.             }
  58.  
  59.             printf("*");
  60.             fprintf(fptr, "*");
  61.             for(int k = 2; k <= i; k++)
  62.             {
  63.                 printf("**");
  64.                 fprintf(fptr, "**");
  65.             }
  66.             printf("\n");
  67.             fprintf(fptr, "\n");
  68.         }
  69.  
  70.         for(int i = line_number - 1; i > 0; i--)
  71.         {
  72.             for(int j = 1; j <= line_number - i; j++)
  73.             {
  74.                 printf(" ");
  75.                 fprintf(fptr, " ");
  76.             }
  77.  
  78.             printf("*");
  79.             fprintf(fptr, "*");
  80.             for(int k = 2; k <= i; k++)
  81.             {
  82.                 printf("**");
  83.                 fprintf(fptr, "**");
  84.             }
  85.             printf("\n");
  86.             fprintf(fptr, "\n");
  87.         }
  88.     }
  89.  
  90.     /* 關閉檔案流 */
  91.     /*fclose 使用方式如下:
  92.       fclose([檔案指標]); */
  93.     fclose(fptr);
  94.     return 0;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment