功能实现:
1:界面交互
2:实现 “ 增·改·删·查 ”
初始化窗口内容 一 文件信息:
#define WIN_WIDTH 85 #define WIN_HEIGHT 30 #define MAX_count 100 // 存入上限! int now_count = 0; // 当前已有人数! void update_window() { int a = 3; do { system("cls"); printf("\n\n\t\t*************************************\n\n"); printf("\t\t >>> 好友信息管理系统 <<<\n\n"); printf("\t\t > 1.进入系统 <\n"); printf("\t\t > 2.退出系统 <\n\n"); printf("\t\t*************************************\n\n"); printf("\t\t请作出您的选择:( 1 or 2 )\n\n"); int choice_1; choice_1 = _getch(); switch (choice_1) { case '1': menu(); break; // 菜单目录展示 case '2': Esc_system(); break; // 退出系统 default: printf(" 不存在该选择 ! --> 请您重新输入 !\n"); printf(" << 您还有 %d 次选择机会 >>\n", a); _getch(); a--; break; } } while (a >= 0); Goodbye(); } void init() { // 设置控制台窗口内容! system("color 1f"); SetConsoleTitle("好友信息管理系统"); //system("mode con:cols=55 lines=30"); char cmd[128]; sprintf(cmd, "mode con cols=%d lines=%d", WIN_WIDTH, WIN_HEIGHT); system(cmd); update_window(); // 首页窗口展示 // 清空所有内存!!! //memset(friends, 0, sizeof(friends)); FILE* fp = fopen("friends'information.txt", "a+"); // "b": 二进制文件 1001010 if (fp == NULL) { now_count = 0; exit(0); } int i = 0; while (!feof(fp)) // feof 表示文件是否结束 { // 放入这个成员里面 结构体大小 每次读 1 个 所读文件 int re_turn = fread(&friends[i], sizeof(Friend), 1, fp); if (re_turn == 1) // 成功 --> 返回 1 { i++; } } now_count = i; // 记录成员个数! } int main() { /************************** 光标的清除 *************************************/ CONSOLE_CURSOR_INFO cursor; //定义光标信息的结构体变量 cursor.dwSize = sizeof(cursor); //检测光标大小 cursor.bVisible = FALSE; //将光标设置为不可见 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台信息 SetConsoleCursorInfo(handle, &cursor); //设置光标信息 /******************************************************************************/ init(); return 0; }
菜单实现:
【功能简介】
void menu() { int b = 3; do { system("cls"); printf("\t\t*****************************************\n\n"); printf("\t\t ☆*: .。. o(≧▽≦)o .。.:*☆\n"); printf("\t\t ==== 欢迎您使用本系统! ====\n\n"); printf("\t\t*****************************************\n\n"); printf("\t\t菜单目录展示:\n\n"); printf("\t\t ---- a.显示好友信息 ----\n"); printf("\t\t ---- b.录入好友信息 ----\n"); printf("\t\t ---- c.修改好友信息 ----\n"); printf("\t\t ---- d.查找好友信息 ----\n"); printf("\t\t ---- e.删除好友信息 ----\n"); printf("\t\t ---- f.退出本系统 ----\n\n"); printf("\t\t*****************************************\n\n"); printf("\t\t请作出您的选择( a / b / c / d )\n\n"); int choice_2; choice_2 = _getch(); switch (choice_2) { case 'a': show(); break; case 'b': add(); break; case 'c': change_friend(); break; case 'd': search(); break; case 'e': delete_show(); break; case 'f': Esc_system(); break; default: printf("\t 不存在该选择 ! --> 请您重新输入 !\n"); printf("\t << 您还有 %d 次选择机会 >>\n", b); _getch(); b--; break; } } while (b >= 0); Goodbye(); }
准备工作:
1: 定义好友信息结构体:
【姓名;性别;生日;QQ;大学;专业!】
2:输入缓冲区的清理:
rewind:
功 能: 将文件内部的位置 指针重新指向一个流( 数据流/文件)的开头
注意: 不是 文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。
用 法: void rewind(FILE *stream);
头文件: stdio.h
返回值: 无
typedef struct _Friend { char name[16]; char sex[4]; char birthday[32]; int QQ_number; char university[32]; char skill[32]; }Friend; Friend friends[MAX_count]; // 等待确认! void wait_confirm() { rewind(stdin); // 清空输入缓冲区 getch(); // 不需要按下回车键 } Friend add_information() { Friend s; rewind(stdin); printf("姓名:"); scanf("%s", s.name); printf("性别:"); scanf("%s", s.sex); printf("生日:"); scanf("%s", s.birthday); printf("QQ:"); scanf("%d", &s.QQ_number); printf("就读大学:"); scanf("%s", s.university); printf("所读专业:"); scanf("%s", s.skill); return s; }
退出功能接口:
void Goodbye() { system("cls"); printf("\n\n"); printf(" 错误选择次数过多 --> 现已被强制退出本系统!!!\n\n"); exit(0); } void Esc_system() { system("cls"); printf("\n"); printf("\n"); printf("\t >>> 您已退出本系统! <<< \n"); printf("\n"); printf("\t >>> 感谢您的使用! <<< \n"); printf("\n"); exit(0); }
查找功能:
1:ID 查找
2:其他关键字查找 ( 同理实现!)
// ID 搜索查重 ----- 拓展延申:多个关键字或信息查找功能实现!!! int search_friend_ID(char id[16]) { // 查找信息! 返回 -1 ==》没有信息! || >=0 --> 存在! // 使用 strcmp 函数对字符串进行相同对比 >>> 若相同则返回 0 ;不同则返回 1 / -1 . for (int i = 0; i < now_count; i++) { if (strcmp(friends[i].name, id) == 0)//friends[i].QQ_number == num { return i; } } return -1; } int search_friend_QQ(int num) { for (int i = 0; i < now_count; i++) { if (friends[i].QQ_number == num) { return i; } } return -1; } void search() { system("cls"); printf("\t*************************************************************************\n"); printf("\t*\t\t ☆*: .。. o(≧▽≦)o .。.:*☆\t\t\t*\n"); printf("\t*\t\t ==== 查询好友信息 ====\t\t\t*\n"); printf("\t*************************************************************************\n"); if (now_count == 0) { printf("当前未存储好友的相关信息!\n\n"); system("pause"); return; } printf("请输入需要查询的好友信息:\n"); char f_name[16]; scanf("%s", &f_name); int m = search_friend_ID(f_name); if (m < 0) { printf("%d\n", m); printf("当前未存储该好友的相关信息!\n"); system("pause"); return; } printf("您的好友:%s 信息如下:\n", friends[m].name); printf("\t*************************************************************************\n"); printf("\t*下面将依次显示以下信息:姓名 --> 性别 --> 生日 --> QQ --> 大学 --> 专业*\n"); printf("\t*************************************************************************\n"); da_yin(m); system("pause"); }
打印和保存:
// 打印单个好友信息 void da_yin(int i) { printf("\t* %s \t%-10s %-10s %10d %-10s %-10s \n", \ friends[i].name, friends[i].sex, friends[i].birthday, friends[i].QQ_number, friends[i].university, friends[i].skill); } bool bao_cun() // 保存判断!? { FILE* fp = fopen("friends'information.txt", "wb"); // 文件模式 wb+ :没有则新建文件 || wb:有文件则继续写入 if (fp == NULL) { return false; } for (int i = 0; i < now_count; i++) { int re_turn = fwrite(&friends[i], sizeof(Friend), 1, fp); // 同理判断是否写入! if (re_turn != 1) {// 失败操作! fclose(fp); return false; } } fclose(fp); return true; }
实现添加:
1:查重比对( strcmp)
strcmp函数
strcmp比较两个字符串的大小,一个字符一个字符比较,按ASCLL码比较
标准规定:
第一个字符串大于第二个字符串,则返回大于0的数字
第一个字符串等于第二个字符串,则返回0
第一个字符串小于第二个字符串,则返回小于0的数字
2:保存判断
void add() { while (1) { system("cls"); printf("\t*****************************************\n"); printf("\t* ☆*: .。. o(≧▽≦)o .。.:*☆\t*\n"); printf("\t* ==== 录入好友信息 ====\t*\n"); printf("\t*****************************************\n"); Friend y = add_information(); int x = search_friend_ID(y.name); if ( x >= 0) { printf("\n您的朋友:%s 的信息,已经存在!\n", y.name); printf("请重新录入好友信息 \n"); system("pause"); return; } // 尾部添加 --> 判断保存是否成功? friends[now_count++] = y; if (!bao_cun()) { printf("保存失败!\n"); system("pause"); continue; } else { printf("\n保存成功!\n"); printf("\n>>>您的好友信息已存入至系统档案中!<<< \n"); printf("\n\t是否继续存入下一个好友信息???\n"); printf("\t ( 1->是 || 2->否 )\n"); } int choice_2; choice_2 = _getch(); switch (choice_2) { case'1': wait_confirm(); break; case'2': return; break; default: return; break; } } }
信息更改:
void change_friend() { while (1) { system("cls"); printf("\t*****************************************\n"); printf("\t* ☆*: .。. o(≧▽≦)o .。.:*☆\t*\n"); printf("\t* ==== 修改好友信息 ====\t*\n"); printf("\t*****************************************\n"); if (now_count == 0) { printf("当前未存储好友的相关信息!\n\n"); system("pause"); return; } printf("请输入想要修改的好友姓名:\n"); char y[16]; scanf("%s", &y); int x = search_friend_ID(y); if (x < 0) { printf("\n您的朋友:%s 的信息,不存在!\n", &y); printf("将跳转至录入好友信息~ \n"); system("pause"); return add(); } printf("\n您的朋友:%s 的信息,已找到!\n", &y); printf("请选择您想要修改的相关信息:\n(1-姓名||2-性别||3-QQ||4-就读学校||5-所学专业||6-QQ)\n"); char XingMing[16], XingBie[4], School[32], ZhuanYe[32],ShengRi[32]; int QQ; int choice_5; choice_5 = _getch(); switch (choice_5) { case '1': printf("请输入修改后的 好友 姓名:"); scanf("%s",friends[x].name); break; case '2': printf("请输入修改后的 性别:"); scanf("%s", friends[x].sex); break; case '3': printf("请输入修改后的 QQ:"); scanf("%d", &friends[x].QQ_number); break; case '4': printf("请输入修改后的 所读大学:"); scanf("%s", &friends[x].university); break; case '5': printf("请输入修改后的 所学专业:"); scanf("%s", &friends[x].skill); break; case '6': printf("请输入修改后的 生日:"); scanf("%s", &friends[x].birthday); break; default: break; } if (!bao_cun()) { printf("修改失败!\n"); } else { printf("修改成功!\n"); } system("pause"); return; } }
显示信息:
void show() { system("cls"); if (now_count == 0) { system("cls"); printf("您还未输入好友的相关信息!\n"); system("pause"); return; } printf("\t*************************************************************************\n"); printf("\t*\t\t ☆*: .。. o(≧▽≦)o .。.:*☆\t\t\t*\n"); printf("\t*\t\t ==== 显示好友信息 ====\t\t\t*\n"); printf("\t*下面将依次显示以下信息:姓名 --> 性别 --> 生日 --> QQ --> 大学 --> 专业*\n"); printf("\t*************************************************************************\n"); for (int i = 0; i <= now_count; i++) { /*fread(&friends[i],sizeof(Friend),1,fp);*/ da_yin(i); } system("pause"); }
删除操作:
【 用后一个赋值给前一个,依次传递 ---> 抵消要更改的位置!】
void delete_info(int x) { for (int i = x; i < now_count; i++) { friends[i] = friends[i + 1]; } now_count--; if (!bao_cun()) { printf("修改失败!\n"); } else { printf("修改成功!\n"); } system("pause"); } void delete_show() { system("cls"); printf("\t*************************************************************************\n"); printf("\t*\t\t ☆*: .。. o(≧▽≦)o .。.:*☆\t\t\t*\n"); printf("\t*\t\t ==== 删除好友信息 ====\t\t\t*\n"); printf("\t*************************************************************************\n"); if (now_count == 0) { printf("当前未存储好友的相关信息!\n\n"); system("pause"); return; } printf("请选择需要删除的好友:\n"); // 先显示出好友信息 ----- 再确定是否要删除 ! char f_name[16]; scanf("%s", f_name); int m = search_friend_ID(f_name); if (m < 0) { printf("%d\n", m); printf("当前未存储该好友的相关信息!\n"); system("pause"); return; } printf("您的好友:%s 信息如下:\n", friends[m].name); printf("\t*************************************************************************\n"); printf("\t*下面将依次显示以下信息:姓名 --> 性别 --> 生日 --> QQ --> 大学 --> 专业*\n"); printf("\t*************************************************************************\n"); da_yin(m); printf("请选择是否移除该好友的相关信息:\n( 1 - 是||2 - 否)\n"); int choice_4; choice_4 = _getch(); switch (choice_4) { case '1': delete_info(m); break; // yes --- 删除 case '2': return; // no --- 保留并返回 default: break; } }
全部源码呈现:
#include<stdio.h> #include<graphics.h> #include<conio.h> #include<string.h> #include<stdlib.h> #define WIN_WIDTH 85 #define WIN_HEIGHT 30 #define MAX_count 100 // 存入上限! int now_count = 0; // 当前已有人数! typedef struct _Friend { char name[16]; char sex[4]; char birthday[32]; int QQ_number; char university[32]; char skill[32]; }Friend; Friend friends[MAX_count]; // 等待确认! void wait_confirm() { rewind(stdin); // 清空输入缓冲区 getch(); // 不需要按下回车键 } void Goodbye() { system("cls"); printf("\n\n"); printf(" 错误选择次数过多 --> 现已被强制退出本系统!!!\n\n"); exit(0); } void Esc_system() { system("cls"); printf("\n"); printf("\n"); printf("\t >>> 您已退出本系统! <<< \n"); printf("\n"); printf("\t >>> 感谢您的使用! <<< \n"); printf("\n"); exit(0); } Friend add_information() { Friend s; rewind(stdin); printf("姓名:"); scanf("%s", s.name); printf("性别:"); scanf("%s", s.sex); printf("生日:"); scanf("%s", s.birthday); printf("QQ:"); scanf("%d", &s.QQ_number); printf("就读大学:"); scanf("%s", s.university); printf("所读专业:"); scanf("%s", s.skill); return s; } int search_friend_ID(char id[16]) { // 查找信息! 返回 -1 ==》没有信息! || >=0 --> 存在! // 使用 strcmp 函数对字符串进行相同对比 >>> 若相同则返回 0 ;不同则返回 1 / -1 . for (int i = 0; i < now_count; i++) { if (strcmp(friends[i].name, id) == 0)//friends[i].QQ_number == num { return i; } } return -1; } int search_friend_QQ(int num) { for (int i = 0; i < now_count; i++) { if (friends[i].QQ_number == num) { return i; } } return -1; } // 打印单个好友信息 void da_yin(int i) { printf("\t* %s \t%-10s %-10s %10d %-10s %-10s \n", \ friends[i].name, friends[i].sex, friends[i].birthday, friends[i].QQ_number, friends[i].university, friends[i].skill); } bool bao_cun() // 保存判断!? { FILE* fp = fopen("friends'information.txt", "wb"); // 文件模式 wb+ :没有则新建文件 || wb:有文件则继续写入 if (fp == NULL) { return false; } for (int i = 0; i < now_count; i++) { int re_turn = fwrite(&friends[i], sizeof(Friend), 1, fp); // 同理判断是否写入! if (re_turn != 1) {// 失败操作! fclose(fp); return false; } } fclose(fp); return true; } // ************************************************* 已经实现 ***** 添加信息 // ************************************************* BUG:不能对好友姓名进行查重!!! // ------ 使用 strcmp 函数对字符串进行相同对比 >> > 若相同则返回 0 ;不同则返回 1 / -1 void add() { while (1) { system("cls"); printf("\t*****************************************\n"); printf("\t* ☆*: .。. o(≧▽≦)o .。.:*☆\t*\n"); printf("\t* ==== 录入好友信息 ====\t*\n"); printf("\t*****************************************\n"); Friend y = add_information(); int x = search_friend_ID(y.name); if ( x >= 0) { printf("\n您的朋友:%s 的信息,已经存在!\n", y.name); printf("请重新录入好友信息 \n"); system("pause"); return; } // 尾部添加 --> 判断保存是否成功? friends[now_count++] = y; if (!bao_cun()) { printf("保存失败!\n"); system("pause"); continue; } else { printf("\n保存成功!\n"); printf("\n>>>您的好友信息已存入至系统档案中!<<< \n"); printf("\n\t是否继续存入下一个好友信息???\n"); printf("\t ( 1->是 || 2->否 )\n"); } int choice_2; choice_2 = _getch(); switch (choice_2) { case'1': wait_confirm(); break; case'2': return; break; default: return; break; } } } void change_friend() { while (1) { system("cls"); printf("\t*****************************************\n"); printf("\t* ☆*: .。. o(≧▽≦)o .。.:*☆\t*\n"); printf("\t* ==== 修改好友信息 ====\t*\n"); printf("\t*****************************************\n"); if (now_count == 0) { printf("当前未存储好友的相关信息!\n\n"); system("pause"); return; } printf("请输入想要修改的好友姓名:\n"); char y[16]; scanf("%s", &y); int x = search_friend_ID(y); if (x < 0) { printf("\n您的朋友:%s 的信息,不存在!\n", &y); printf("将跳转至录入好友信息~ \n"); system("pause"); return add(); } printf("\n您的朋友:%s 的信息,已找到!\n", &y); printf("请选择您想要修改的相关信息:\n(1-姓名||2-性别||3-QQ||4-就读学校||5-所学专业||6-QQ)\n"); char XingMing[16], XingBie[4], School[32], ZhuanYe[32],ShengRi[32]; int QQ; int choice_5; choice_5 = _getch(); switch (choice_5) { case '1': printf("请输入修改后的 好友 姓名:"); scanf("%s",friends[x].name); break; case '2': printf("请输入修改后的 性别:"); scanf("%s", friends[x].sex); break; case '3': printf("请输入修改后的 QQ:"); scanf("%d", &friends[x].QQ_number); break; case '4': printf("请输入修改后的 所读大学:"); scanf("%s", &friends[x].university); break; case '5': printf("请输入修改后的 所学专业:"); scanf("%s", &friends[x].skill); break; case '6': printf("请输入修改后的 生日:"); scanf("%s", &friends[x].birthday); break; default: break; } if (!bao_cun()) { printf("修改失败!\n"); } else { printf("修改成功!\n"); } system("pause"); return; } } void show() { system("cls"); if (now_count == 0) { system("cls"); printf("您还未输入好友的相关信息!\n"); system("pause"); return; } printf("\t*************************************************************************\n"); printf("\t*\t\t ☆*: .。. o(≧▽≦)o .。.:*☆\t\t\t*\n"); printf("\t*\t\t ==== 显示好友信息 ====\t\t\t*\n"); printf("\t*下面将依次显示以下信息:姓名 --> 性别 --> 生日 --> QQ --> 大学 --> 专业*\n"); printf("\t*************************************************************************\n"); for (int i = 0; i <= now_count; i++) { /*fread(&friends[i],sizeof(Friend),1,fp);*/ da_yin(i); } system("pause"); } void search() { system("cls"); printf("\t*************************************************************************\n"); printf("\t*\t\t ☆*: .。. o(≧▽≦)o .。.:*☆\t\t\t*\n"); printf("\t*\t\t ==== 查询好友信息 ====\t\t\t*\n"); printf("\t*************************************************************************\n"); if (now_count == 0) { printf("当前未存储好友的相关信息!\n\n"); system("pause"); return; } printf("请输入需要查询的好友信息:\n"); char f_name[16]; scanf("%s", &f_name); int m = search_friend_ID(f_name); if (m < 0) { printf("%d\n", m); printf("当前未存储该好友的相关信息!\n"); system("pause"); return; } printf("您的好友:%s 信息如下:\n", friends[m].name); printf("\t*************************************************************************\n"); printf("\t*下面将依次显示以下信息:姓名 --> 性别 --> 生日 --> QQ --> 大学 --> 专业*\n"); printf("\t*************************************************************************\n"); da_yin(m); system("pause"); } void delete_info(int x) { // 用后一个赋值给前一个,依次传递 ---> 抵消要更改的位置! for (int i = x; i < now_count; i++) { friends[i] = friends[i + 1]; } now_count--; if (!bao_cun()) { printf("修改失败!\n"); } else { printf("修改成功!\n"); } system("pause"); } void delete_show() { system("cls"); printf("\t*************************************************************************\n"); printf("\t*\t\t ☆*: .。. o(≧▽≦)o .。.:*☆\t\t\t*\n"); printf("\t*\t\t ==== 删除好友信息 ====\t\t\t*\n"); printf("\t*************************************************************************\n"); if (now_count == 0) { printf("当前未存储好友的相关信息!\n\n"); system("pause"); return; } printf("请选择需要删除的好友:\n"); // 先显示出好友信息 ----- 再确定是否要删除 ! char f_name[16]; scanf("%s", f_name); int m = search_friend_ID(f_name); if (m < 0) { printf("%d\n", m); printf("当前未存储该好友的相关信息!\n"); system("pause"); return; } printf("您的好友:%s 信息如下:\n", friends[m].name); printf("\t*************************************************************************\n"); printf("\t*下面将依次显示以下信息:姓名 --> 性别 --> 生日 --> QQ --> 大学 --> 专业*\n"); printf("\t*************************************************************************\n"); da_yin(m); printf("请选择是否移除该好友的相关信息:\n( 1 - 是||2 - 否)\n"); int choice_4; choice_4 = _getch(); switch (choice_4) { case '1': delete_info(m); break; // yes --- 删除 case '2': return; // no --- 保留并返回 default: break; } } void menu() { int b = 3; do { system("cls"); printf("\t\t*****************************************\n\n"); printf("\t\t ☆*: .。. o(≧▽≦)o .。.:*☆\n"); printf("\t\t ==== 欢迎您使用本系统! ====\n\n"); printf("\t\t*****************************************\n\n"); printf("\t\t菜单目录展示:\n\n"); printf("\t\t ---- a.显示好友信息 ----\n"); printf("\t\t ---- b.录入好友信息 ----\n"); printf("\t\t ---- c.修改好友信息 ----\n"); printf("\t\t ---- d.查找好友信息 ----\n"); printf("\t\t ---- e.删除好友信息 ----\n"); printf("\t\t ---- f.退出本系统 ----\n\n"); printf("\t\t*****************************************\n\n"); printf("\t\t请作出您的选择( a / b / c / d )\n\n"); int choice_2; choice_2 = _getch(); switch (choice_2) { case 'a': show(); break; case 'b': add(); break; case 'c': change_friend(); break; case 'd': search(); break; case 'e': delete_show(); break; case 'f': Esc_system(); break; default: printf("\t 不存在该选择 ! --> 请您重新输入 !\n"); printf("\t << 您还有 %d 次选择机会 >>\n", b); _getch(); b--; break; } } while (b >= 0); Goodbye(); } void update_window() { int a = 3; do { system("cls"); printf("\n\n\t\t*************************************\n\n"); printf("\t\t >>> 好友信息管理系统 <<<\n\n"); printf("\t\t > 1.进入系统 <\n"); printf("\t\t > 2.退出系统 <\n\n"); printf("\t\t*************************************\n\n"); printf("\t\t请作出您的选择:( 1 or 2 )\n\n"); int choice_1; choice_1 = _getch(); switch (choice_1) { case '1': menu(); break; // 菜单目录展示 case '2': Esc_system(); break; // 退出系统 default: printf(" 不存在该选择 ! --> 请您重新输入 !\n"); printf(" << 您还有 %d 次选择机会 >>\n", a); _getch(); a--; break; } } while (a >= 0); Goodbye(); } void init() { // 设置控制台窗口内容! system("color 1f"); SetConsoleTitle("好友信息管理系统"); //system("mode con:cols=55 lines=30"); char cmd[128]; sprintf(cmd, "mode con cols=%d lines=%d", WIN_WIDTH, WIN_HEIGHT); system(cmd); update_window(); // 首页窗口展示 // 清空所有内存!!! //memset(friends, 0, sizeof(friends)); FILE* fp = fopen("friends'information.txt", "a+"); // "b": 二进制文件 1001010 if (fp == NULL) { now_count = 0; exit(0); } int i = 0; while (!feof(fp)) // feof 表示文件是否结束 { // 放入这个成员里面 结构体大小 每次读 1 个 所读文件 int re_turn = fread(&friends[i], sizeof(Friend), 1, fp); if (re_turn == 1) // 成功 --> 返回 1 { i++; } } now_count = i; // 记录成员个数! } int main() { /************************** 光标的清除 *************************************/ CONSOLE_CURSOR_INFO cursor; //定义光标信息的结构体变量 cursor.dwSize = sizeof(cursor); //检测光标大小 cursor.bVisible = FALSE; //将光标设置为不可见 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台信息 SetConsoleCursorInfo(handle, &cursor); //设置光标信息 /******************************************************************************/ init(); return 0; }