私は迷路ゲームを解決するためにC言語でプログラムを書いています。入力された迷路ファイルはstdinから読み込まれます。私はstdinから迷路を読んでnoを印刷するプログラムの下に書いた。行と列のしかし、入力ファイルを完全に読んだら、次のステップを実行できるように、再度アクセスすることはできますか?Cプログラムでstdinを複数回読み込む方法
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#define BUFFERSIZE (1000)
struct maze {
char ** map;
int startx, starty;
int numrows;
int initdir;
};
void ReadMaze(char * filename, struct maze * maze);
int main(int argc, char *argv[]) {
struct maze maze;
ReadMaze(argv[1], &maze);
return EXIT_SUCCESS;
}
/* Creates a maze from a file */
void ReadMaze(char * filename, struct maze * maze) {
char buffer[BUFFERSIZE];
char mazeValue [BUFFERSIZE][BUFFERSIZE];
char ** map;
int rows = 0, foundentrance = 0, foundexit = 0;
int columns = 0;
/* Determine number of rows in maze */
while (fgets(buffer, BUFFERSIZE, stdin)){
++rows;
puts(buffer);
columns = strlen(buffer);
}
printf("No of rows: %d\n", rows);
printf("No of columns: %d\n", columns);
if (!(map = malloc(rows * sizeof *map))) {
fputs("Couldn't allocate memory for map\n", stderr);
exit(EXIT_FAILURE);
}
}
迷路のサイズと迷路データの2つの値(幅と高さ)で開始するようにファイルの形式を変更できますか?そうすれば、ファイルには1回のパスしか必要ありません。 –