私は少し前にこれを尋ねましたが、本当に曖昧で、コードにもいくつか変更を加えました。
「stats.txt」というファイルを開いて、次のファイルを開きます:(「C」を使用)
fopen("stats.txt", r+)
プログラムの最初の実行時に、ファイルへの書き込みに使用される変数を入力するようにユーザーに依頼します。
fprintf(fp, "STR: %i(%i)\n", STR, smod);
fprintf(fp, "DEX: %i(%i)\n", DEX, dmod);
等...
プログラムが最初に実行された後のファイルは次のようになり、すべての番号がプログラム内の変数に対応します。
Level 1 Gnome Wizard:
STR: 8(-1)
DEX: 14(2)
CON: 14(2)
INT: 13(1)
WIS: 13(1)
CHR: 12(1)
APP: 11(0)
Fort save: 0
Reflex save: 0
Will save: 3
プログラムを閉じて2回目に実行すると、「stats.txt」ファイル内のテキストをチェックして表示する「IF」ステートメントがあります。
if (fgets(buf, 1000, fp) == NULL)
{
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
{
printf("%s",buf);
}
私が抱えている問題は、プログラムがファイルを読み取るが、ここにあるように変数値を転送しないという事実です。
Level 1 Gnome Wizard:
-------------------------
STR: 0(-5)
DEX: 0(-5)
CON: 0(-5)
INT: 0(-5)
WIS: 0(-5)
CHR: 0(-5)
APP: 0(-5)
-----Saving Throws------
Fortitude: 0
Reflex: 0
Will: 0
変数の読み方についても誰か提案してもらえますか?
どうぞよろしくお願いいたします