Requirements Introduction
The mode in which the program handles user requirements is:
- Wc.exe [Parameter][filename]
In [parameter], the user interacts with the program through input parameters, the following functions are required:
1. Basic functions
- Supports the-c statistic file character number
- Supports-W statistics file Word count
- Supports-l statistics file Total rows
2, expand the function
- Support-A returns advanced options (line of code lines with blank lines of comment)
- Supports-s recursive processing of eligible files
3. Advanced Features
- Support for the-X program to interact with users in a graphical interface
[FileName] is the file name to be processed.
Design History and Impressions
First see this topic, really is confused, because the previous compiled code is compiled directly with the compiler, and this time asked to write a command-line program, so I found a degree niang, degrees Niang tell me, main function parameters
int argc, char* argv[] can help you, by reading the relevant documents, I have a general understanding of it:
ARGC This shaping data is used to hold the space size of the subsequent string argv, and argv is used to hold the command line input data.
Understand these, the idea immediately opened, this topic requires nothing more than the command line to the main function input control parameters, so as to achieve the effect of the condition count
Basic functions
- Supports the-c statistic file character number
- Supports-W statistics file Word count
- Supports-l statistics file Total rows
Because the timing is not appropriate, resulting in the programming cycle is not long, so the specific features are not refined, the following attached code, the personal feeling the biggest bright spot is the command line execution code, words do not say, paste code, hair, sleep!
#include"stdafx.h"#include"string.h"#include"stdlib.h"voidCount (Char*file); intZicount=0;intWordcount=0;intHangcount=0;intMainintargcChar* argv[])//argv[1] Save instruction, argv[2] Save file path{FILE*FP; Count (argv[2]); while(1) { if((Fp=fopen (argv[2],"R"))==NULL) {printf ("The file does not exist! \n\n\n"); scanf ("%s%s%s", argv[0],argv[1],argv[2]); Continue; } Else if(strcmp (argv[1],"- C")==0)//Statistics file character Countprintf"the file%s character count is:%d\n", argv[2],zicount); Else if(strcmp (argv[1],"- W")==0)//statistics file number of wordsprintf"file%s Word number is:%d\n", argv[2],wordcount); Else if(strcmp (argv[1],"- L")==0)//total rows of statistical textprintf"file%s Total number of rows is%d\n", argv[2],hangcount);//Else if (strcmp (argv[1], "-a") ==0)//back to Advanced options//printf ("4\n"); //Else if (strcmp (argv[1], "-S") ==0)//recursive processing of eligible files//printf ("5\n"); Else if(strcmp (argv[1],"Exit")==0) {printf ("Program End!\n"); Break; } Elseprintf ("This directive does not exist, please re-enter \ n"); printf ("\ n"); scanf ("%s%s%s", argv[0],argv[1],argv[2]); } return 0; /*Char a[20]; strcpy (A, "haha.txt"); Count (a); printf ("%d\n%d\n%d\n", Zicount,wordcount,hangcount); return 0; */}voidCount (Char*file) {FILE*FP; CharA; if(Fp=fopen (file,"R"))==NULL) {printf ("failed to read the file! \ n"); Exit (-1); } while(!feof (FP)) {a=fgetc (FP); if(a!=' '&&a!='\ n'&&a!='\ t'&&a!=','&&a!='.'&&a!='!'&&a!=';'&&a!='=') Zicount++; if(a==' '|| a=='\ n'|| a=='\ t'|| a==','|| a=='.'|| a=='!'|| a=='='|| a==';') { if(a=='=')//Resolve = =wordcount--; Wordcount++; } if(a=='\ n'|| a=='\ t') Hangcount++; } Zicount--;//At end of the File,zicount would addhangcount++;//can ' t recognize the last linefclose (FP);}
Execution effect:
Sentiment article
By writing this command-line program, I realized that the previous contact is too little, trapped in a small circle afraid to go out, after the need to contact more things, must not sit idle.
Code C language Word statistics program executed with the command line