我想在if-else內部給char數組的大小,這取決於文件中的行數。但是,當我嘗試以後使用它,它給了錯誤:「未申報陣」一if
塊中聲明將成爲區塊內本地爲什麼我不能在IF-Else中聲明char數組?
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
順便提一下,您可以計算行數,然後根據行數分配更多或更少的字節,而不是行數是。你可能需要仔細考慮你所要做的。 –