利用字符栈s,从终端接收一行并送至调用过程的数据区,#为退格符,&为退行符 void LineEdit( ) { SqStack s; char ch,c; InitStack(&s); printf("请输入一个文本文件,^Z结束输入:\n"); ch=getchar( ); while(ch!=EOF) { while(ch!=EOF&&ch!='\n') { switch(ch) { case '#': 1 break; case '@':ClearStack(&s); break; default : 2 } 3 } StackTraverse(s,copy); /* 将从栈底到栈顶的栈内字符传送至文件 */ ClearStack(&s); /* 重置s为空栈 */ fputc('\n',fp); if(ch!=EOF) ch=getchar( ); } DestroyStack(&s);}