void addbook(Book booklist[]) { printf("请输入书籍序号:"); scanf("%s",bookList[numbooks].id); printf("请输入书名:"); scanf("%s",bookList[numbooks].name); printf("请输入作者:"); scanf("%s",bookList[numbooks].author); printf("请输入出版社名:"); scanf("%s",bookList[numbooks].press); bookList[numbooks].available = 1; numbooks++; printf("添加成功!\n"); }怎么改正
时间: 2023-07-18 11:45:19 浏览: 103
JavaWeb连接数据库(Dao模式),实现添加book并按日期范围查找相应book信息
这段代码中有一个问题:函数的参数为`booklist[]`,但是在函数体内却使用了`bookList`,大小写不一致,导致编译器无法识别。另外,在输入字符串时应该使用`fgets`函数,以避免输入过长的字符串导致内存溢出。
下面是修改后的代码:
```c
void addbook(Book booklist[]) {
printf("请输入书籍序号:");
fgets(booklist[numbooks].id, MAX_ID_LEN, stdin);
printf("请输入书名:");
fgets(booklist[numbooks].name, MAX_NAME_LEN, stdin);
printf("请输入作者:");
fgets(booklist[numbooks].author, MAX_AUTHOR_LEN, stdin);
printf("请输入出版社名:");
fgets(booklist[numbooks].press, MAX_PRESS_LEN, stdin);
booklist[numbooks].available = 1;
numbooks++;
printf("添加成功!\n");
}
```
阅读全文