实践简单的项目WC

 1 #include<iostream>
 2 #include<fstream>
 3 #include<string>
 4 #include<Windows.h>
 5 using namespace std;
 6 void main()
 7 {
 8     char word[150][15];
 9     int AllChar = 0, NoteSize = 0, Row = 1, WordSize = 0;
10     char a[15], c, file[15];
11     int i = 0, j = 0;
12     FILE *fp;
13     cout << "#结束输入" << endl;
14     cin >> file;
15     while (1)
16     {
17         if (file[0] == '#')
18             break;
19         fp = fopen(file, "r");
20         if (fp == NULL)
21         {
22             cout << "the file:y.txt not found!" << endl;
23             exit(-1);
24         }
25         c = fgetc(fp);
26         AllChar++;
27         if (c == '/')
28         {
29             c = fgetc(fp);
30             AllChar++;
31             if (c == '/')
32                 NoteSize++;
33         }
34         c = fgetc(fp);
35         AllChar++;
36         while (c != EOF)
37         {
38             if ((c >= 'a'&&c <= 'z') || (c >= 'A') && (c <= 'Z'))
39             {
40                 a[i] = c;
41                 c = fgetc(fp);
42                 AllChar++;
43                 i++;
44                 continue;
45             }
46             else if (c == '/')
47             {
48                 c = fgetc(fp);
49                 AllChar++;
50                 if (c == '/')
51                 {
52                     c = fgetc(fp);
53                     AllChar++;
54                     NoteSize++;
55                     continue;
56                 }
57             }
58             else
59             {
60                 if (c == '\n')
61                 {
62                     Row++;
63                 }
64                 if (i != 0)
65                 {
66                     a[i] = '\0';
67                     strcpy_s(word[j], a);
68                     j++;
69                     i = 0;
70                 }
71                 c = fgetc(fp);
72                 AllChar++;
73             }
74         }
75         if (i != 0)
76         {
77             a[i] = '\0';
78             strcpy_s(word[j], a);
79             j++;
80         }
81         fclose(fp);
82         WordSize = j;
83         cout << "行数:" << Row << endl;
84         cout << "字符数:" << AllChar << endl;
85         cout << "单词数:" << WordSize << endl;
86         cout << "注释行:" << NoteSize << endl;
87         cin >> file;
88     }
89 }

 项目要求

1.统计文本文件的字符数、单词数和行数

2.要求写一个命令行程序,模仿已有的wc.exe的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数

3.扩展功能为统计注释行数。

4.可以统计多个文件,文件名称由用户输入。

 这次作业是统计一个文件中有多少单词,字符和有多少行,之前C++学的不是很好,所以这次为了加强自己C++语言的运用,所以用C++进行编程设计

我提前在D盘里准备了一个记事本a,通过程序显示出记事本a里有的单词数,字符数和行数

除了单词字母算字符外,所有的符号、空格,包括回车都要算到字符数里

因为VS2013里没有“fopen”的定义,所以需要进行宏定义,点开“项目”、“属性”

在预处理器定义中写入_CRT_SECURE_NO_WARINGS,宏定义成功,就能运行程序了

程序运行截图

输入记事本的路径,以回车结束,就会显示结果

第一次配置git,然后上传到coding里,配置很麻烦,但在同学的帮助下成功上传,自己上传还不是很熟,相信通过多次软件工程作业,我会很熟练的运用git上传程序

posted @ 2016-03-23 20:02  张舒瑞  阅读(329)  评论(0编辑  收藏  举报