c关于文件读取的报不能read的有关问题

c关于文件读取的报不能read的问题
小弟想实现对一个文件内容的统计,但是总是报地址不能read的错误,望大神帮忙解决下。
#include<stdio.h>
#include<iostream>
using namespace std;



void main()
{
FILE *fp;
char a[150];
char b[30];
int x1;
    int j,j1,j2;
int i1;
    j1=0;
j2=0;

for(j=0;j<150;j++)
a[j]='<';

//  printf("%s\n",a[1]);

for(j=0;j<30;j++)
b[j]='<';

//  printf("%s\n",b[1]);

fp = fopen("C:\\Result.cov", "r+");

if(fp!=NULL)
{
while(!feof(fp))
{
   if(fgets(a, 500, fp)!=NULL)
  
  {
   x1=0;
   if((a[0]>='0')&&(a[0]<='9'))
   {
   

//   printf("%s\n",x1);

   while(a[x1]!='<'&&a[x1]!='\n')
   x1++;

   j1=x1+1;
   
   if(a[j1]='_')
   j1++;

  // printf("%s",j1);

   while(a[x1]!='>'&&a[x1]!='\n')
   x1++;
   j2=x1;
            
 //  printf("%s\n",j2);

            for(i1=0;i1<(j2-j1);i1++)
   {
   b[i1]=a[j1];    
   j1++;
   }
     
   printf("%s\n",b[0]);
   }
   }
}

}
fclose(fp);

}


另问:如何访问fgets返回的数据,如fgets(a, 500, fp)之后,a[0]可以访问么?

------解决方案--------------------
printf("%s",a[0])

你这样是想输出什么?输出数组a里的字符串还是数组a里的第一个字符?
如果要输出数组a里的第一个字符的话,应该这样:
printf("%c",a[0])
------解决方案--------------------
引用:
Quote: 引用:

fp = fopen("C:\\Result.cov", "r+");//r+ 以可读写方式打开文件,该文件必须存在
希望能帮到你!

我调试了下,在 if(fgets(a, 500, fp)!=NULL)后直接printf("%s",a)是可以打印所有Result.cov里的内容的,但是printf("%s",a[0])不可以
见楼上回答!