项目使用知识点
C语言文件读取、写入、删除、更改以及列表的创建。
整体项目,在完善问题时,充分运用到了文件中的几个函数,可以做到读取文件的某一行;更改文件的某一行数据;添加新的数据在文件末尾;查询文件的当前数据。
各个部分详细代码
登入密码
typedef struct LNode
{
char name[10];
char pass[10];
struct Node *next;
} LNode,*pNode;
pNode createList()
{
pNode pHead = (pNode)malloc(sizeof(LNode));
pNode cur = pHead;
FILE *fp = fopen("users.txt","r");
if(NULL == fp)
{
printf("FILE NOT FOUND");
exit(0);
}
pHead->next=NULL;
while(1)
{
pNode temp = (pNode)malloc(sizeof(LNode));
if(!temp)
exit(0);
//检测到录入完毕后将分配的空间清除掉
if(2!=fscanf(fp,"%s%s",temp->name,temp->pass))
{
free(temp);
break;
}
cur->next=temp;
cur = temp;
cur->next = NULL;
}
return pHead;
}
这行代码主要的主要作用是,获取文本中设置的账号密码,放入链表中,用来达到登入的效果,具体的登入判断代码如下:
int login(pNode head)
{
char name[10];
char pass[10];
pNode temp = head->next;
if(NULL==head->next)
{
printf("user list empty\n");
getch();
return 0;
}
printf("***********************************************\n" );
printf(" 欢迎进入猜单词小游戏\n" );
printf("***********************************************\n" );
printf("用户名:");
scanf("%s",name);
printf("密码:");
scanf("%s",pass);
while(temp)
{
if(0==strcmp(temp->name,name) && 0==strcmp(temp->pass,pass))
{
printf("success...........\n");
getch();
return 1;
}
temp = temp->next;
}
printf("user not found.........\n");
getch();
return 0;
}
这块使用到字符串的对比,文件系统的读取。
进行拼写
进行拼写部分存在俩种模式,可以随机获取单词或者进行顺序拼写,从中使用到随机数组,来进行选取文件中的随机行号的数据,具体代码如下:
void play(int play_u)
{
int s1=0,s2=0;
int i = 0;
char a[5];
char en[100],ch[100];
//修改者:jgx 定义随机数
int whichline = 0;//随机生成的行号
int currentindex = 0;//用来匹配是否等于生成的行号