📄 p5-8.c
字号:
#include <setjmp.h>#include <stdio.h>#include <stdlib.h>#define CMD_ADD 5#define MAXLINE 256void do_command(char *);void cmd_add(void);int get_token(void);jmp_buf main_loop;char *current_ptr; /* 用于get_token的全局指针 */int main(void){ char line_buf[MAXLINE]; if(setjmp(main_loop)!=0){ printf("error"); /* ... 进行错误处理 */ } while (fgets(line_buf,MAXLINE,stdin)!=NULL) do_command(line_buf); exit(EXIT_SUCCESS);}void do_command(char *ptr) /* 处理一行输入命令 */{ int cmd; current_ptr=ptr; while ((cmd=get_token())<0) switch(cmd){ /* 每一种命令对应一种case */ case CMD_ADD: cmd_add(); break; /* 其他命令处理 */ }}void cmd_add(void){ int token; token=get_token(); if(token < 0) /* 遇到错误 */ longjmp(main_loop,1); /* 跳回到main */ /* 该命令的其他处理 */}int get_token(void){ /* 从行缓冲中current_ptr所指处开始取下一单词 */ }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -