Извините, если этот вопрос был спрошен Я искал этот сайт на пару часов и еще ничего не видел.C программы. Взяв верхнее число из входного файла, создав 2d-массив, а затем прочитав сетку из файла
Так что я читаю входной файл, который выглядит так. Верхняя строка представляет собой массив 8x8 2d, а затем оставшиеся строки, которые я должен сортировать. В основном я заменяю каждую * буквой +1, поэтому a, b, c ... и т. Д., Но это не мой вопрос.
8 <---- The size of the array 8X8
**......
**..*..*
..**.**.
..**..*.
.*..*..*
..**.**.
..**.**.
.*..*..*
мой вопрос, как я могу прочитать только в верхней строке входного файла, чтобы найти размер массива, то хранить, что в качестве строки и столбцов моего массива, а затем прочитать оставшуюся часть файла (сетка) и сохранить символы в строках и столбцах массива?
Это то, что у меня есть до сих пор.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define N 9
void blobchecker(char[][N]);
main()
{
FILE *fp;
fp = fopen("blobfile.txt", "r");
if ((fp = fopen("blobfile.txt", "r")) == NULL)
printf("File not read \n");
int c;
char myarray[N][N];
int i, j;
fscanf(fp, "%d", &c);
fclose(fp);
fp = fopen("blobfile.txt", "r");
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
fscanf(fp, "%c", &myarray[i][j]);
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
printf("%c", myarray[i][j]);
printf("\n Now checking for blobs \n");
// blobchecker(myarray);
fclose(fp);
}
Несвязанное примечание, но если вы не можете открыть файл, это бы не фатальная ошибка? После этого вы не сможете продолжить, особенно не продолжайте читать и читать. Кроме того, почему вы закрываете и снова открываете файл? Это приведет к тому, что ваш код будет несовместим с данными в файле, поскольку первым символом, который вы читаете в циклах, является размер массива. Вы также не обрабатываете новые строки. –
Что касается вашей проблемы, укажите 'myarray' * после *, вы читаете размер. C поддерживает [массивы переменной длины] (http://en.wikipedia.org/wiki/Variable-length_array). –