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

📄 rdict.c

📁 &#61599 Douglas Comer
💻 C
字号:
/* rdict.c - main, nextin */#include <rpc/rpc.h>#include <stdlib.h>#include <stdio.h>#include <ctype.h>#include "rdict.h"#define	MAXWORD	50		/* maximum length of a command or word	*/#define	RMACHINE	"localhost"	/* name of remote machine	*/CLIENT	*handle;			/* handle for remote procedure	*/int	nextin(char *cmd, char *word), initw(), insertw(char *word);int	deletew(char *word), lookupw(char *word);/*------------------------------------------------------------------------ * main - insert, delete, or look up words in a dictionary as specified *------------------------------------------------------------------------ */intmain(int argc, char *argv[]){	char	word[MAXWORD+1]; /* space to hold word from input line	*/	char	cmd;	int	wrdlen;		/* length of input word			*/      /* set up connection for remote procedure call  */        handle = clnt_create(RMACHINE, RDICTPROG, RDICTVERS, "tcp");       if (handle == 0) {               printf("Could not contact remote program.\n");               exit(1);       }	while (1) {		wrdlen = nextin(&cmd, word);		if (wrdlen < 0)			exit(0);		word[wrdlen] = '\0';		switch (cmd) {		case 'I':	/* "initialize" */			initw();			printf("Dictionary initialized to empty.\n");			break;		case 'i':	/* "insert" */			insertw(word);			printf("%s inserted.\n",word);			break;		case 'd':	/* "delete" */			if (deletew(word))				printf("%s deleted.\n",word);			else				printf("%s not found.\n",word);			break;		case 'l':	/* "lookup" */			if (lookupw(word))				printf("%s was found.\n",word);			else				printf("%s was not found.\n",word);			break;		case 'q':	/* quit */			printf("program quits.\n");			exit(0);		default:	/* illegal input */			printf("command %c invalid.\n", cmd);			break;		}	}}/*------------------------------------------------------------------------ * nextin - read a command and (possibly) a word from the next input line *------------------------------------------------------------------------ */intnextin(char *cmd, char *word){	int	i, ch;	ch = getc(stdin);	while (isspace(ch))		ch = getc(stdin);	if (ch == EOF)		return -1;	*cmd = (char) ch;	ch = getc(stdin);	while (isspace(ch))		ch = getc(stdin);	if (ch == EOF)		return -1;	if (ch == '\n')		return 0;	i = 0;	while (!isspace(ch)) {		if (++i > MAXWORD) {			printf("error: word too long.\n");			exit(1);		}		*word++ = ch;		ch = getc(stdin);	}	return i;}

⌨️ 快捷键说明

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