Я пытаюсь указать размер массива Char внутри if-else в зависимости от количества строк в файле. Но когда я пытаюсь использовать его впоследствии, он дает ошибку: «массив необъявленная»Почему я не могу объявить массив char в IF-Else?
FILE *f=fopen("G:\\workspaceC\\small1.txt","r");
while((c=fgetc(f))!=EOF)
{
if(c=='\n')
no_of_lines++;
}
printf("no_of_lines: %d",no_of_lines);
int fclose(FILE *f);
if(no_of_lines<10){
char b[30];
}
else if(no_of_lines>10 && no_of_lines<15){
char b[60];
}
else{
char b[106];
}
for(z=0;z<size;z++)
{
if(c==b[z]) ///////Here it gives error: "b undeclared"
{
flag=1;
break;
}
}
Вы можете - вы показали, как это сделать. Проблема в том, что область массива - это блок, в котором вы его объявляете. И вы не можете получить доступ к переменной вне этих блоков. Также обратите внимание, что вы объявляете 'fclose()' - и вам не нужно это делать, потому что '#include' делает это, а не вызывает его, чтобы закрыть файл. –
'int fclose (FILE * f);' -> 'fclose (f);' – BLUEPIXY
Кстати, вы подсчитываете количество строк, а затем выделяете больше или меньше байтов в зависимости от количества строк, а не от того, сколько строк находятся. Возможно, вам стоит подумать довольно внимательно о том, что вы делаете. –