这是我的结构:
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'的参数。如何正确扫描?
答案 0 :(得分:1)
fgets
的第一个参数应为char *
。
所以你需要从
修复结构定义struct Data{
char *buffer[MAXBUFF];
int bufferSize;
};
要
struct Data{
char buffer[MAXBUFF];
int bufferSize;
};
答案 1 :(得分:0)
您应该从buffer
删除指针:
struct Data{
char buffer[MAXBUFF];
int bufferSize;
};