Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- void mapopen();
- int main() {
- mapopen();
- }
- void mapopen() {
- FILE *mapfile = fopen("map", "r");
- char charbuffer[3], row, col, ROWS, COLS, i, j;
- /* Count number of rows and columns in map */
- row = 0, col = 0;
- while (fgets(charbuffer, 3, mapfile)) {
- if (*charbuffer != '\n') {col++;}
- else {row++; COLS = col; col = 0;}
- }
- ROWS = row;
- printf("%d rows %d cols", ROWS, COLS);
- /* Create map */
- char ***map = malloc(ROWS * sizeof(char**));
- for (i = 0; i < ROWS; i++) {
- map[i] = malloc(COLS * sizeof(char*));
- for (j = 0; j < COLS; j++) {map[i][j] = malloc(3 * sizeof(char));}
- }
- /* Read file into array */
- row = 0, col = 0;
- while (fgets(charbuffer, 3, mapfile)) {
- if (*charbuffer != '\n') {map[row][col] = strdup(charbuffer); col++;}
- else {row++; col = 0;}
- }
- fclose(mapfile);
- /* Print array */
- for (row = 0; row < ROWS; row++) {
- for (col = 0; col < COLS; col++) {
- printf("%s", map[row][col]);
- }
- printf("\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement