①指定されたテキストファイルから文字列を読み込む。
②指定された配列に格納。
という単純な処理をする関数なのですが、どうも見た目がカッコ悪い・・・というか、実用的(?)でないような気がして・・・
とりあえず自分でプログラムしてみたものです。
//main.cpp
#define GROBAL_INSTANCE
#include "GV.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
Window_Init(); //スクリーン設定のMessageBoxとかDxLib_Initとか
//第一引数:読み込むテキスト
//第二引数:文字列を格納する変数
//第三引数:文字列の行数
Text_Input("test.txt",str,256);
while(!ProcessLoop() && !Key[KEY_INPUT_ESCAPE]){
DrawFormatString(0, 0,GetColor(255,255,255),"%s",str[0]);
DrawFormatString(0,24,GetColor(255,255,255),"%s",str[1]);
DrawFormatString(0,48,GetColor(255,255,255),"%s",str[2]);
SetDrawFPS(TRUE); //FPS表示
}
DxLib_End();
return 0;
}//Text.cpp
#include "GV.h"
int Text_Input(char TextName[],char val[][256],int gyou){
FILE *fp;
if((fp=fopen(TextName,"r+"))==NULL) //エラー処理
return -1;
for(int i=0;i<gyou;i++){ //行数分ループして指定した変数に一行ずつ格納
fgets(val[i],256,fp);
if(val[i][strlen(val[i])-1]=='\n') //もし行の最後が\nだったら
val[i][strlen(val[i])-1]='\0'; //その部分を\0にする。
//※DrawString系の関数では\nが・になるため。
}
fclose(fp);
return 0;
}//GV.h
#pragma warning(disable:4996)
#include "DxLib.h"
#include "Define.h"
#ifdef GROBAL_INSTANCE
#define GROBAL
#else
#define GROBAL extern
#endif
#include "Function.h"
GROBAL char str[256][256]; //文字列を格納する配列
「指定されたテキスト内の文字列を指定された変数に格納する関数」のプログラムを作ってみてほしいです。
よろしくお願いします。