求教给位大神,VS2013代码中使用printf之类的不需要加stdio.h否则会报错,但是不加的话FILE *fp又不能用(报错),怎么办?
VS2013代码中使用printf之类的不需要加stdio.h否则会报错,但是不加的话FILE *fp又不能用(报错),怎么办?程序代码:
#include"func.h" main() /**主函数**/ { printf("\n\n\n\t\t~~~~~~~~~~~~~~~~酒店管理系统~~~~~~~~~~~~~~~~~"); printf("\n\n\n\t\t\tPress any key to continue....."); printf("\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t---By黄李\n"); getch(); menu(); } void regist() /**注册函数**/ { int n, m, i, j; printf("\tHow many new customs?\t"); scanf("%d", &n); printf("\tHow many rooms they want? "); scanf("%d", &m); for (i = r; i<r + m; i++) { {puts("\n\tRoom_ID:\t"); scanf("%d", &room[i].room_ID); puts("\n\tTel:\t"); scanf("%s", room[i].tel); puts("\n\tPrice:\t"); scanf("%d", &room[i].price); room[i].sign = 1; } for (j = p; j<p + n; j++) { puts("\n\tName:\t"); scanf("%s", room[i].client_list[j].name); puts("\n\tSex(1 for men || 0 for women):\t"); scanf("%d", &room[i].client_list[j].sex); puts("\n\tAge:\t"); scanf("%d", &room[i].client_list[j].age); puts("\n\tID_card:\t"); scanf("%s", room[i].client_list[j].ID_card); puts("\n\tYear:\t"); scanf("%d", &room[i].client_list[j].year); puts("\n\tMonth:\t"); scanf("%d", &room[i].client_list[j].month); puts("\n\tDate:\t"); scanf("%d", &room[i].client_list[j].date); } } r = r + m; p = p + n; save(); menu(); } void menu() /*****菜单函数*****/ { int n, w; do { puts("\n\n\n\t***************************MENU*****************************\n\n"); puts("\t\t\t ||(1).Regist ||\n"); puts("\t\t\t ||(2).Statistics||\n"); puts("\t\t\t ||(3).Search ||\n"); puts("\t\t\t ||(4).Modify ||\n"); puts("\t\t\t ||(5).Exit ||\n"); puts("\n\t***********************************************************\n"); printf("\t\tPlease choice you number(1-5)"); scanf("%d", &n); if (n<1 || n>5) w = 1, getchar(); else w = 0; } while (w == 1); switch (n) { case 1:regist(); break; case 2:stat(); break; case 3:search(); break; case 4:modify(); break; case 5:exit(0); } } void stat() /***统计函数***/ { int n, m; do { puts("\t\t*********************MENU************************\n"); puts("\t\t\t\t1).Statistics one month\n"); puts("\t\t\t\t2).Statistics using room\n"); puts("\t\t\t\t3).MENU()"); puts("\t\t**************************************************\n"); printf("\t\tPlease choice your number(1-3):[ ]\b\b"); scanf("%d", &n); if (n<1 && n>3) { m = 1; getchar(); } else m = 0; } while (m == 1); switch (n) { case 1:stat_o(); break; case 2:stat_u(); break; case 3:menu(); } } void stat_o() /*******统计人数******/ { int j, i, n, l; int s = 0; puts("Please input the month you want to statistics:"); scanf("%d", &n); load_room(); for (i = 0; i<r; i++) for (j = 0; j<p; j++) if (room[i].client_list[j].month == n) s = s + 1; printf("There are %d customer this month", s); puts("\n\nWhat you want to do?\n"); puts("1).Statistics again\t2).back\n"); scanf("%d", &l); switch (l) { case 1:stat_o(); break; case 2:stat(); } } void stat_u() /******统计使用中的房间*****/ { int j, l, s = 0; load_room(); for (j = 0; j<p; j++) { if (room[j].sign == 1) s += 1; } printf("There are %d rooms in use", s); puts("\n\nWhat you want to do?\n"); puts("1).Statistics again\t2).back\n"); scanf("%d", &l); switch (l) { case 1:stat_u(); break; case 2:stat(); } } printf_p(int i, int j) /******显示个人信息******/ { printf("name:"); puts(room[i].client_list[j].name); printf("\nsex:%d\n", room[i].client_list[j].sex); printf("\nage:%d\n", room[i].client_list[j].age); puts("\nID_card:"); printf("%s", room[i].client_list[j].ID_card); printf("\nyear:%d\n", room[i].client_list[j].year); printf("\nmonth:%d\n", room[i].client_list[j].month); printf("\ndate:%d\n", room[i].client_list[j].date); printf("\nRoom_ID:%d\n", room[i].room_ID); printf("\nTel:%s\n", room[i].tel); printf("\nPrice:%d\n", room[i].price); } void search() /********查找函数********/ { int n, m; do { puts("\n\n\t\t*********************MENU************************\n"); puts("\t\t1).Search someone had erev lived here\n"); puts("\t\t2).Search someday \n"); puts("\t\t3).MENU()"); puts("\t\t************************************************\n"); printf("\t\tPlease choice your number(1-3):[ ]\b\b"); scanf("%d", &n); if (n<1 && n>3) { m = 1; getchar(); } else m = 0; } while (m == 1); switch (n) { case 1:search_one(); break; case 2:search_day(); break; case 3:menu(); } } void search_one() /*****查找个人*****/ { int i, j, w = 0, l, m, n; char s[20]; printf("Please input the name\n"); scanf("%s", s); load_room(); for (i = 0; i<r; i++) for (j = 0; j<p; j++) if (strcmp(room[i].client_list[j].name, s) == 0) w = 1, m = i, n = j; if (w == 1) printf_p(m, n); else printf("\nThere is no record here\n"); puts("What do you want to do?\n"); puts("1).search again\t2).back\n"); scanf("%d", &l); switch (l) { case 1:search_one(); break; case 2:search(); } } void search_day() /*******查询某日的使用情况*******/ { int i, j, l, m, n, a, b, c, w = 0; printf("\nPlease input the day you want to search"); printf("\nYear:"); scanf("%d", &a); printf("\nMonth:"); scanf("%d", &b); printf("\nDate:"); scanf("%d", &c); load_room(); for (i = 0; i<p; i++) for (j = 0; j<r; j++) if ((room[i].client_list[j].date == c) && (room[i].client_list[j].month == b) && (room[i].client_list[j].year == a)) w = 1, m = i, n = j, printf_p(m, n); if (w == 0) printf("NO record this day\n"); puts("What you want to do?\n"); puts("1).search again\t2).back\n"); scanf("%d", &l); switch (l) { case 1:search_day(); break; case 2:search(); } } void modify() /***** 修改函数 ******/ { int n, m; do { puts("\t\t*********************MENU************************\n"); puts("\t\t\t\t1).modify one people\n"); puts("\t\t\t\t2).modify one day\n"); puts("\t\t\t\t3).MENU()"); puts("\t\t**************************************************\n"); printf("\t\tPlease choice your number(1-3):[ ]\b\b"); scanf("%d", &n); if (n<1 && n>3) { m = 1; getchar(); } else m = 0; } while (m == 1); switch (n) { case 1:modify_one(); break; case 2:modify_day(); break; case 3:menu(); } } void modify_one() /*****修改个人信息*****/ { int i, j, m, n, w = 0, l; char s[20]; puts("\t\tPlease input the name"); scanf("%s", s); load_room(); for (i = 0; i<r; i++) for (j = 0; j<p; j++) if (strcmp(room[i].client_list[j].name, s) == 0) w = 1, m = i, n = j; if (w == 1) printf_p(m, n); else printf("\nThere is no record here\n"); modify_s(m, n); save(); puts("What you want to do?\n"); puts("1).Modify again\t2).back\n"); scanf("%d", &l); switch (l) { case 1:modify_one(); break; case 2:modify(); } } void modify_s(int i, int j) /*********修改执行项*********/ { int a, q; char s[20], b[15]; printf("\nChoice the title you want to modify\n"); puts("1).Name 2).sex 3).age 4)ID_card 5).year 6).month 7).date 8).room_ID 9)tel 10).price\ 11).modify none\n"); printf("Please choice your number(1-10):[ ]\b\b"); scanf("%d", &q); switch (q) { case 1: printf("Please input new name\n"); scanf("%s", s); strcpy(room[i].client_list[j].name, s); break; case 2: printf("Please input new sex\n"); scanf("%d", &a); room[i].client_list[j].sex = a; break; case 3: printf("Please input the new age\n"); scanf("%d", &a); room[i].client_list[j].age = a; break; case 4: printf("Please input new ID_card\n"); scanf("%s", s); strcpy(room[i].client_list[j].ID_card, s); break; case5: printf("Please input new year\n"); scanf("%d", &a); room[i].client_list[j].year = a; break; case6: printf("Please input the new month\n"); scanf("%d", &a); room[i].client_list[j].month = a; break; case7: printf("Please input the new date\n"); scanf("%d", &a); room[i].client_list[j].date = a; break; case8: printf("Please input the new room_ID\n"); scanf("%d", &a); room[i].room_ID = a; break; case9: printf("Please input the new tel\n"); scanf("%s", b); strcpy(room[i].tel, b); break; case 10: printf("Please input the new price\n"); scanf("%d", &a); room[i].price = a; break; case 11: modify(); } } void modify_day() /*******修改某日信息******/ { int i, j, l, a, b, c, w = 0, m, n; puts("\t\tPlease input the date"); puts("\nYear:"); scanf("%d", &a); puts("\nMonth:"); scanf("%d", &b); puts("\nDate:"); scanf("%d", &c); load_room(); for (i = 0; i<p; i++) for (j = 0; j<r; j++) if ((room[i].client_list[j].date == c) && (room[i].client_list[j].month == b) && (room[i].client_list[j].year == a)) w = 1, m = i, n = j; if (w == 1) printf_p(m, n); else printf("NO record this day\n"); modify_s(m, n); save(); puts("What you want to do?\n"); puts("1).modify again\t2).back\n"); scanf("%d", &l); switch (l) { case 1:modify_day(); break; case 2:menu(); } } void save() /********保存函数********/ { FILE*fp; int i, j; if ((fp = fopen("room.txt", "w")) == NULL) { printf("\nCannot open file\n"); return NULL; } for (i = 0; i<r; i++) for (j = 0; j<p; j++) fprintf(fp, "%d,%s,%d,%d,%s,%d,%d,%s,%d,%d,%d", room[i].room_ID, room[i].tel, room[i].price, room[i].sign, room[i].client_list[j].name, room[i].client_list[j].sex, room[i].client_list[j].age, room[i].client_list[j].ID_card, room[i].client_list[j].year, room[i].client_list[j].month, room[i].client_list[j].date); fclose(fp); return 1; } void load_room() /******加载函数******/ { FILE *fp; struct hotel room[N]; int i, j; if ((fp = fopen("room.txt", "r")) == NULL) { printf("\nCannot open file\n"); return 0; } for (i = 0; !feof(fp); i++) for (j = 0; !feof(fp); j++) fscanf(fp, "%d,%s,%d,%d,%s,%d,%d,%s,%d,%d,%d", &room[i].room_ID, room[i].tel, &room[i].price, &room[i].sign, room[i].client_list[j].name, &room[i].client_list[j].sex, &room[i].client_list[j].age, room[i].client_list[j].ID_card, &room[i].client_list[j].year, &room[i].client_list[j].month, &room[i].client_list[j].date); fclose(fp); r = i; p = j; } void printf_back() { int k, w; void browse(); printf("\n\n\tSuccessful^-^.\n\n"); printf("What do you want to do?\n\n\t1).Browse all now\t2).Back: [ ]\b\b"); scanf("%d", &w); if (w == 1)browse(); else menu(); }