私はここでちょっと新しいので、十分に説明していない場合は事前にお詫びします。
写真を提供するために、fopenコマンドを開いて、および/またはテキストファイルを作成して、読み取り/書き込み/上書きするパラメーターを使用しています。
fp = fopen("stats.txt", "w+");
私はファイルに次のように書き込んでいます:
void display_stats()
{
//some math needed for calculations
smod = (STR - 10)/2;
dmod = (DEX - 10)/2;
cmod = (CON - 10)/2;
imod = (INT - 10)/2;
wmod = (WIS - 10)/2;
hmod = (CHR - 10)/2;
amod = (APP - 10)/2;
//print to console
printf("STR: %i(%i)\n", STR, smod);
printf("DEX: %i(%i)\n", DEX, dmod);
printf("CON: %i(%i)\n", CON, cmod);
printf("INT: %i(%i)\n", INT, imod);
printf("WIS: %i(%i)\n", WIS, wmod);
printf("CHR: %i(%i)\n", CHR, hmod);
printf("APP: %i(%i)\n", APP, amod);
printf("-----Saving Throws------\n");
printf("Fortitude: %i\n", fort);
printf("Reflex: %i\n", rflx);
printf("Will: %i\n", will);
// write to file
fprintf(fp, "Level %i %s %s:\n",level,race_r,spec_c);
fprintf(fp, "STR: %i(%i)\n", STR, smod);
fprintf(fp, "DEX: %i(%i)\n", DEX, dmod);
fprintf(fp, "CON: %i(%i)\n", CON, cmod);
fprintf(fp, "INT: %i(%i)\n", INT, imod);
fprintf(fp, "WIS: %i(%i)\n", WIS, wmod);
fprintf(fp, "CHR: %i(%i)\n", CHR, hmod);
fprintf(fp, "APP: %i(%i)\n", APP, amod);
fprintf(fp, "Fort save: %i\n", fort);
fprintf(fp, "Reflex save: %i\n", rflx);
fprintf(fp, "Will save: %i\n", will);
}
これをファイル「stats.txt」に出力します(ユーザーの入力に応じて)
Level 2 Gnome Sorcerer:
STR: 8(-1) //STR=8 smod=-1
DEX: 14(2) //DEX=14 dmod=2
CON: 14(2) //etc...
INT: 13(1)
WIS: 13(1)
CHR: 12(1)
APP: 11(0)
Fort save: 0
Reflex save: 0
Will save: 3
今、プログラムの2回目の実行のために、ファイルのテキストをチェックし、trueの場合、そのテキストを出力し、後で使用するためにすべての変数を保存します。現在、次のとおりです。
if (fgets(buf, 1000, fp) == NULL) //char buf[1000]/FILE fp if "stats.txt" has no text
{
printf("Please enter in your base stats (no modifiers):\n");
enter_stats();
printf("Please indicate your characters level:\n");
printf("I am a level ");
level = GetInt();
Race_check();
spec_check();
printf("------Base saving throws (no modifiers)------\n");
saving_throws();
}
else //if "stats.txt" has text
{
printf("%s",buf);
}
break; //ending of a case statement
助けてくれてありがとう、これはイライラします。