|
查看: 1257|回复: 3
|
求救!user input error
[复制链接]
|
|
|
本帖最后由 无知小子92 于 19-8-2011 06:23 PM 编辑
我的 assignment 是做关于 library system 的
在让 学生 search book 的那一 part
我遇到了问题!
我的问题是,
如果学生 key in 的 call number 没有出现在我的 file,就 show error message
然后 loop 回去再让 学生 key in 一次~
是可以 loop 回去, 但是 loop 回去后,再次得到 search_call_no,接下去的process 就走不到了~
请各位善心人士救救小弟!
感激不尽!
- do
- {
- sum=0;
- i=0;
- fflush(stdin);
- printf("Please enter call number: ");
- scanf("%s", search_call_no);
- while((fscanf(book, "%s\t%s\t%s\t%s\t%s\t%s\t%s", call_no, author, pub_date, title, pub_loc, pub_name, isbn)) != EOF)
- {
-
- a = check[i] = (strcmp(search_call_no, call_no));
- i++;
- sum = sum + a;
- if((strcmp(search_call_no, call_no)) == 0)
- {
- printf("\nCall Number\t: %s\n", call_no);
- printf("Author\t\t: %s\n", author);
- printf("Public Date\t: %s\n", pub_date);
- printf("Title\t\t: %s\n", title);
- printf("Public Location\t: %s\n", pub_loc);
- printf("Public Name\t: %s\n", pub_name);
- printf("ISBN\t\t: %s\n\n", isbn);
- }
- }
- //printf("%d", sum);
- if(sum <= -10 || sum >= 10)
- {
- printf("WRONG!!!\n\n");
- }
- }while(sum <= -10 || sum >= 10);
复制代码 |
|
|
|
|
|
|
|
|
|
|
发表于 19-8-2011 07:24 PM
|
显示全部楼层
本帖最后由 loonloon0625 于 19-8-2011 07:28 PM 编辑
接下去的process 就走不到了?
是不是没close file |
|
|
|
|
|
|
|
|
|
|
发表于 19-8-2011 07:50 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 20-8-2011 10:42 AM
|
显示全部楼层
你的fscanf()已经把File Pointer移动到eof的位置,你loop回去后没有fseek()到档案的开始位置,而是维持在档案的结尾。
 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|