int main(void){
char s[20], a, c[3];
FILE * fp; scanf("%s",s); fp=fopen(s,"r"); if(!fp){ printf("open error\n"); return 1; }
c[2]='\0';
while((a=fgetc(fp))!=EOF){
int i=0; // 在 while 循环中, 每次循环都会将i的值置为0.
// 解决1: 将i的定义放到while 前面 (推荐)
// 解决2: 用静态变量 static int i = 0;
if(a&0x80){
c[i++]=a;
if(i==2){
printf("%s 是汉字\n",c);
i=0;
}
}
else i=0;
}
getchar();
getchar();
return 0;
}
int i=0;
请注意定义变量的位置,在函数开始处
你放外面就是全局变量,可以
你放里面请放在函数开头,这样编译不通过