您的位置:首页 > 其它

大一时候写的C控制台操作记事本

2016-04-30 21:55 190 查看
当时实践要求,必须凑够250行,所以可能存在冗余代码,写的很挫,见谅

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

#include <windows.h>

int creat();

int scan();

int del();

int print();

int go();

int cls();

int failed();

int main()

{

go();

return 0;

}

int go()

{

char o,x;

int flag;

k:

print();

printf("选择操作:\na.新建记事本\nb.查看记事本\nc.删除记事本\nd.退出\n");

print();

scanf("%c",&o);

x=getchar(); //过滤回车

if(o=='a')

{

cls();

flag=0;

flag=creat();

x=getchar();

if(flag>0)

{

goto k;

}

else

{

cls();

failed();

goto k;

}

}

else if(o=='b')

{

cls();

flag=0;

flag=scan();

if(flag>0)

{

goto k;

}

else

{

cls();

failed();

goto k;

}

}

else if(o=='c')

{

cls();

flag=0;

flag=del();

x=getchar();

if(flag>0)

{

goto k;

}

else

{

cls();

failed();

goto k;

}

}

else if(o=='d')

{

cls();

return 0;

}

else

{

cls();

failed();

goto k;

}

return 0;

}

int creat()

{

char name[20],c;

FILE *p1,*p2;

print();

printf("输入文件名:\n");

gets(name);

p1=fopen(name,"w");

if(p1==NULL)

{

return -1;

}

else

{

print();

printf("输入文本(以'#'结束):\n");

c=getchar();

while(c!='#')

{

fputc(c,p1);

c=getchar();

}

}

fclose(p1);

p2 = fopen("wjm.txt","a"); //存入文件名

if(p2==NULL)

{

p2=fopen("wjm.txt","w");

fputs(name,p2);

}

else

{

fputc('\n',p2);

fputs(name,p2);

}

fclose(p2);

return 1;

}

int scan()

{

int i,n;

FILE *p1,*p2;

char name[20],c;

char fname[50][20];

p1=fopen("wjm.txt","r");

if(p1==NULL)

{

return -1;

}

else

{

n=0;

while(!feof(p1)) //读出文件列表

{

fgets(fname
,20,p1);

n=n+1;

}

}

fclose(p1);

print();

printf("选择文件:\n");

for(i=0;i<n;i++)

{

printf("%s",fname[i]);

}

putchar(10);

print();

printf("输入文件名:\n");

gets(name);

p2=fopen(name,"r");

if(p2==NULL)

{

return -1;

}

else

{

print();

while(!feof(p2))

{

c=fgetc(p2);

putchar(c);

}

print();

}

fclose(p2);

return 1;

}

int del()

{

FILE *p1;

int i,n,t;

char name[10],s[20];

char fname[50][20];

strcpy(s,"del ");

p1=fopen("wjm.txt","r");

if(p1==NULL)

{

return -1;

}

else

{

n=0;

while(!feof(p1))

{

fgets(fname
,20,p1);

n=n+1;

}

}

fclose(p1);

print();

printf("选择文件:\n");

for(i=0;i<n;i++)

{

printf("%s",fname[i]);

}

putchar(10);

print();

printf("输入文件名:\n");

scanf("%s",name);

strcat(s,name);

system(s);

t=strlen(name);

name[t]='\n';

name[t+1]='\0'; //插入回车

for(i=0;i<n;i++)

{

if(strcmp(fname[i],name)==0)

{

strcpy(fname[i],"shanchu"); //设置删除标记

}

}

p1=fopen("wjm.txt","w"); //更新存放文件名

if(p1==NULL)

{

return -1;

}

else

{

for(i=0;i<n;i++)

{

if(strcmp(fname[i],"shanchu")==0)

{

continue;

}

else

{

fputs(fname[i],p1);

}

}

}

fclose(p1);

return 1;

}

int print()

{

printf("\n********************\n");

return 0;

}

int cls()

{

system("cls");

return 0;

}

int failed()

{

printf("操作失败!\n");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: