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

への最初の引数fgetschar *.

したがって、構造定義を修正する必要があります

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 に答える