ファイル分割

メインプログラムと関数を記述したファイルを分けて作成します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. 新規プロジェクトから、空の Console Application を作成して下さい。
    プロジェクトのフォルダーに次のファイルを格納して、[プロジェクト][既存項目の追加] からプロジェクトに追加します。
    ファイル名 説明
    Main.cpp メインプログラムのファイル
    Text.cpp 関数を記述したファイル
  2. Main.cpp のプログラムです。
    extern で Text.cpp で記述されている関数を宣言します。
    Text.cpp には GetText() と PutMsg() が記述されています。
    /*★ GetText Main Program    前田 稔 ★*/
    #include <stdio.h>
    #include <conio.h>
    
    char    buf[10000];
    extern  unsigned  int GetText(char *file, char *buf, unsigned int siz);
    extern  void PutMsg(char *buf, unsigned int siz);
    
    //Main Program
    void  main()
    {   char    file[256];
    
        printf("入力ファイル名をタイプして下さい\n");
        scanf_s("%s",file,256);
        GetText(file,buf,10000);
        PutMsg(buf,200);
        _getch();
    }
    
  3. Text.cpp のプログラムです。
    GetText() ではパラメータで渡されたファイル名からデータを入力して *buf に格納します。
    siz は入力の最大長(buf のサイズ)で、実際に入力された長さ(バイト数)をリターンします。
    PutMsg() は *buf から始まる、長さ siz の文字列をコンソールに表示する関数です。
    文字列の終了記号として '\0' を格納するので、その文字を wk に退避しています。
    /*★ GetText Function     前田 稔 ★*/
    #include <stdio.h>
    
    unsigned int  GetText(char *file, char *buf, unsigned int siz)
    {   FILE    *FI;            //FILE の定義
        unsigned int len;       //入力長
    
        if (fopen_s(&FI,file,"rb")!=0)
        {   printf("INPUT FILE open error[%s]\n",file);
            return 0;
        }
        len= fread(buf,1,siz,FI);
        *(buf+len) = '\0';
        fclose(FI);
        return len;
    }
    
    void  PutMsg(char *buf, unsigned int siz)
    {   char wk;
    
        wk = *(buf+siz);
        *(buf+siz) = '\0';
        printf("%s\n",buf);
        *(buf+siz) = wk;
    }
    

超初心者のプログラム入門(C/C++)