📄 行编辑程序.txt
字号:
//行编辑程序
#include <stdio.h>
#define Stack_Size 100
#define MAX 500
typedef struct {
char *top;
char *base;
int stacklength;
}Sqstack,*Pstack;
void InitStack(Pstack S)
{
S->base=(char *)malloc( Stack_Size*sizeof(char));
if(!S->base)
exit(1);
S->top=S->base;
S->stacklength=Stack_Size;
}
void Push(Pstack S,char ch)
{
if(S->top-S->base>=Stack_Size)
exit(1);
*(S->top++)=ch;
}
void Pop(Pstack S)
{
if(S->base==S->top)
exit(1);
S->top--;
}
/*int PopGet(Pstack S,char *ch)
{
if(S->base==S->top)
exit(1);
*ch=*(--S->top);
} */
void Clear(Pstack S)
{
S->base=S->top;
}
void Destroy(Pstack S)
{
free(S->base);
S->top=S->base;
}
int main()
{
int i,j;
char ch;
Sqstack S;
char *p; //注意类型
char Array[MAX];
FILE *fp;
InitStack(&S);
printf("please input string:\n");
while((ch=getchar())!='\n') {
switch(ch) {
case'#':Pop(&S);
break;
case'@':Clear(&S);
break;
default:Push(&S,ch);
}
}
for(p=S.base,i=0;p<S.top;p++,i++)
Array[i]=*p;
if((fp=fopen("myfile.txt","ab"))==NULL)
{
printf("Can not open the file!\n");
exit(1);
}
for(j=0; j<i;j++)
fputc(Array[j],fp);
fputc('\n',fp); //在输入完一段数据之后输入一个回车给磁盘文件
Destroy(&S);
fclose(fp); //否则提示:另一个程序正在使用此文件,进程无法访问
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -