【发布时间】:2012-05-15 09:12:28
【问题描述】:
在这个函数 findBookByTitle 中应该发生的是 fp 被打开,如果一个标题与给定的函数匹配,它将打印标题。假定标题是唯一的,因此一旦找到匹配项,它就可以停止搜索。我的问题是我不完全确定如何将标题与文件中的内容相匹配。这就是我目前所拥有的......
void findBookByTitle(FILE* fp, char title[])
{
FILE * fp = fopen(fp, "r");
while(!EOF && *fp = title){
printf("Title: <%c> \n", title);
}
if(EOF && *fp != title ){
printf("No books match the title: <%c> ", title);
}
}
当我编译时遇到一些错误,解决这些问题可能毫无意义,因为我的函数仍然不完整,但其中一些确实让我感到困惑。
34: 错误: 'fp' 重新声明为不同类型的符号 32:注意:以前对“fp”的定义在这里 34:警告:从不兼容的指针类型传递“fopen”的参数 1 /usr/include/stdio.h:251:注意:预期为 'const char * restrict' 但参数的类型为 'struct FILE *' 35:错误:二进制 && 的操作数无效(有 'int' 和 'FILE') 38:错误:二进制操作数无效!=(有'FILE'和'char *')
【问题讨论】:
-
您绝不能取消引用
FILE*。您必须使用正确的 I/O 函数,例如fgets。