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

📄 wc.c

📁 GEEKOS是一个免费的操作系统内核
💻 C
字号:
/* * ======================================================================== * *          Project 5:  * * * *  By: *      Jeff Hollingsworth *  e-mail: *      hollings@cs.umd.edu * *  File:        wc.c *  Created on:  04/19/1996 *  *  Contents:    A simple wc, read stdin and write count of lines and chars *               to stdout. *  * * ======================================================================== */#include <conio.h>#include <process.h>#include <fileio.h>#include <string.h>extern void exit(int);int isspace(char ch){    if ((ch == ' ') || (ch == '\t')) return 1;    return 0;}int  main(int argc , char ** argv){  int i;  int ret;  int inFd;  char *ch;  int done;  int inSpaceMode;  char buffer[512];  int words, bytes, lines;  int doBytes, doWords, doLines;  doBytes = doWords = doLines = 1;  inFd = 0;  /* defaults back to off */  for (i=1; i < argc; i++) {     if (argv[i][0] == '-') {	 doLines = doBytes = doWords = 0;         ch = argv[i]+1;         while (*ch) {             switch (*ch) {                 case 'l':                        doLines++;                        break;                 case 'w':                        doWords++;                        break;                 case 'c':                        doBytes++;                        break;                 default:                        Print("Invalid argument %s\n", argv[i]);			Exit(1);                        break;             }             ch++;         }     } else {	 inFd = Open(argv[i], O_READ);	 if (inFd <= 0) {	     Print("Error opening %s: %s\n", argv[i], Get_Error_String(inFd));	     Exit(1);	 }         break;     }  }  done = 0;  memset(buffer, '\0', sizeof(buffer));  inSpaceMode = words = bytes = lines = 0;  while (!done) {      ret = Read(inFd, buffer, sizeof(buffer));      if (ret <= 0) break;      bytes += ret;      for (i=0; i < ret; i++) {          if ((buffer[i] == '\n') ||              (buffer[i] == '\r')) {              lines++;	      if (!inSpaceMode) words++;          }          if (isspace(buffer[i])) {             if (!inSpaceMode) words++;             inSpaceMode = 1;          } else {             inSpaceMode = 0;          }      }      memset(buffer, '\0', sizeof(buffer));  }  if(doLines) Print("%d    ", lines);  if(doWords) Print("%d    ", words);  if(doBytes) Print("%d    ", bytes);  Print("\n");  return 0;}

⌨️ 快捷键说明

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