⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qq.txt

📁 在控制台程序中完成对文件的操作
💻 TXT
字号:
#include "stdio.h"
#include "conio.h"

struct qq
{
char num[12];
char name[10];
char age[2];
}Qq[1];
main()
{
int kk=1;char choice;
loop2 : init();
loop : scanf("%c",&choice);
switch(choice)
{
case 'n': case 'N': newf();break;
case 'a': case 'A': break;
case 'l': case 'L': system("cls");listf();getch();system("cls");goto loop2;
case 'f': case 'F': findf();getch();goto loop2;
case 'd': case 'D': deletef();getch();goto loop2;
case 'q': case 'Q': return 0;
default: goto loop;
}
 while(kk==1)
{
addf();
printf("enter 1 to continue add.\n");
scanf("%d",&kk);
system("cls");
}
goto loop2;
}


int init()
{
printf("\n**************************************\n");
printf("******第一次用本程序请按n(new)********\n");
printf("*********增加记录请按a(add)***********\n");
printf("*******查看记录情况请按l(list)********\n");
printf("*****查询某个记录情况请按f(find)******\n");
printf("********删除记录请按d(delete)*********\n");
printf("***********退出请按q(quit)************\n");
printf("**************************************\n");
}
int newf()
{
FILE *fp,*Fp; int n;
Fp=fopen("QQ","w");
fclose(Fp);
fp=fopen("num","w");
n=0;
fprintf(fp,"%d",n);
fclose(fp);
}
int addf()
{
FILE *fp1,*fp;int n;
printf("**************************************\n");
printf("******请依次输入QQ号,姓名,年龄.*******\n");
printf("**************************************\n");
fp1=fopen("QQ","a");
scanf("%s%s%s",&Qq[0].num,&Qq[0].name,&Qq[0].age);
fwrite(&Qq[0],sizeof(struct qq),1,fp1);
fclose(fp1);
fp=fopen("num","r");
fscanf(fp,"%d",&n);
fclose(fp);
fp=fopen("num","w");
n++;
fprintf(fp,"%d",n);
fclose(fp);
}
int listf()
{
FILE *fp;int n,i,k=0;
fp=fopen("num","r");
fscanf(fp,"%d",&n);
fclose(fp);
fp=fopen("QQ","r");
for (i=0;i<n;i++)
{
fread(&Qq[0],sizeof(struct qq),1,fp);
printf("QQ:%s\nname:%s\nage:%s\n\n\n",&Qq[0].num,&Qq[0].name,&Qq[0].age);
k++;
if (k%4==0) {printf("\nput any key continue\n"); getch();system("cls");k=0;} 
}
fclose(fp);
}

int findf()
{
char namef[10];int n,i;

FILE *fp;
printf("\n*******请输入姓名********\n");
scanf("%s",&namef);
fp=fopen("num","r");
fscanf(fp,"%d",&n);
struct qq q[n];
fclose(fp);
fp=fopen("QQ","r");
for (i=0;i<n;i++)
{
fread(&q[i],sizeof(struct qq),1,fp);
if (strcmp(q[i].name,namef)==0)
{
printf("QQ:%s\nname:%s\nage:%s\n\n\n",q[i].num,q[i].name,q[i].age);
fclose(fp); return 0;
}
}
printf("sorry, the name can't be found.\n");
printf("put any key continue.\n");
fclose(fp);
}

int deletef()
{
char namef[10];int n,i,kk=-1;

FILE *fp;
printf("\n*******请输入要删除QQ人的姓名********\n");
scanf("%s",&namef);
fp=fopen("num","r");
fscanf(fp,"%d",&n);
struct qq q[n];
fclose(fp);
fp=fopen("QQ","r");
for (i=0;i<n;i++)
{
fread(&q[i],sizeof(struct qq),1,fp);
if (strcmp(q[i].name,namef)==0)  kk=i;
}
fclose(fp);
if (kk==-1)
{
printf("sorry, the name can't be found.\n");
printf("put any key continue.\n");
return 0;
}
else
fp=fopen("QQ","w");
for (i=0;i<kk;i++)
fwrite(&q[i],sizeof(struct qq),1,fp);
for (i=kk+1;i<n;i++)
fwrite(&q[i],sizeof(struct qq),1,fp);
fclose(fp);
n=n-1;
fp=fopen("num","w");
fprintf(fp,"%d",n);
fclose(fp);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -