实践简单的项目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上传程序