1

这是我的结构:

struct Data{
   char *buffer[MAXBUFF];
   int bufferSize;
};

这就是我调用函数 searchInFile 的方式:

searchInFile(logFile, outFile, &dat);

这是 searchInFile 函数本身:

void searchInFile(FILE *logFile, FILE *outFile, struct Data *dat){
   FILE *srcFile = fopen("src.txt", "r");

   if(!srcFile){
      printf("Nepavyko atidaryti \"src.txt\" failo.\n");
      fprintf(logFile, "Nepavyko atidaryti \"src.txt\" failo.\n");
      fclose(srcFile);
      return;
   } else {
      fprintf(logFile, "Failas \"src.txt\" atidarytas sekmingai.\n");
   }

   while(!feof(srcFile)){
      fgets((*dat).buffer, MAXBUFF, srcFile);
      printf("%s", dat->buffer);
   }

   fclose(srcFile);
}

我想要做的是将字符扫描到结构中定义的缓冲区。我收到警告,说我从不兼容的指针类型传递了“fgets”的参数。如何正确扫描?

4

2 回答 2

1

的第一个参数fgets应该是 a char *

所以你需要修复结构定义

struct Data{
   char *buffer[MAXBUFF];
   int bufferSize;
};

struct Data{
   char buffer[MAXBUFF];
   int bufferSize;
};
于 2013-06-05T18:31:50.497 回答
0

您应该从以下位置删除指针 buffer

struct Data{
   char buffer[MAXBUFF];
   int bufferSize;
};
于 2013-06-05T18:31:33.963 回答