【发布时间】:2014-02-17 02:33:26
【问题描述】:
我试图根据文件中的行数在 if-else 中给出 Char 数组的大小。但是当我之后尝试使用它时,它会给出错误:“array undeclared”
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 <stdio.h>会这样做 — 而不是调用它来关闭文件。 -
int fclose(FILE *f);-->fclose(f); -
顺便说一下,你计算行数,然后根据行数分配更多或更少的字节,而不是行的长度。你可能需要仔细考虑你在做什么。
标签: c arrays if-statement char declaration