Я совершенно новичок в программировании на языке C (только для Java), и заявления различны, чтобы смутить меня. Мне было интересно, объявляет ли мой заголовок метода, что мне нужно объявить Nrows и Ncols (из моего основного метода) в методе? просто устанавливает их для определенной переменной?Этот метод возвращает int Nrows и int Ncols?
#include <stdio.h>
void RdSize(int *Nrows, int *Ncols)
{
Nrows = NULL;
Ncols = NULL;
FILE *in = fopen("A1in.txt","r");
if(in == NULL) { perror("Error opening file");}
else
{
int i;
char input[4]; //I have no idea how to set the size of the array to
//the length of the first line of the input file
//(which has 4 chars, but is not optimal to put the
//number 4)
for(i = 0; i < sizeof(input); i++)
{
input[i] = fgetc(in); //trying to copy each char into input[]
//array
if(isdigit(input[i]) && Nrows == NULL)
{
Nrows = input[i] - '0'; //converting from char to int
} //Here I'm setting Nrows to
//something. Is this all I do?
if(isdigit(input[i]) && Nrows != NULL)
{
Ncols = input[i] - '0'; //converting from char to int
} //setting Ncols
}
}
fclose(in);
}
Кроме того, если у меня был .txt документ, который выглядит следующим образом:
0 0 0 0 0 0 0
0 1 0 1 0 1 0
0 1 1 1 0 1 0
0 1 0 1 0 1 0
0 0 0 0 0 0 0
Что бы быть лучшим способом поместить это в 2d массив символов из файла .txt?
Большое спасибо!
Вы говорите, что первая строка файла имеет 4 символа, но пример, который вы показываете, имеет 13 символов. Что он? – Barmar
Нельзя назначать 'Nrows' и' Ncols'. Поскольку они являются указателями, вам необходимо косвенным образом установить переменную вызывающего: '* Nrows =;' –
Barmar
Непонятно, что должна делать эта функция. Вам нужно четко объяснить это, и что происходит не так. – Barmar