1 #include <iostream>
2 #include <fstream>
3 #include <cstdlib>
4
5 using std::cout;
6 using std::endl;
7 using std::fstream;
8 using std::string;
9
10 int main(int argc, char **argv)
11 {
12 //创建文件名列表文件,若存在则清空文件
13 fstream file_list("file_list.txt",std::ios::out);
14 file_list.close();
15
16 //写入文件名列表到file_list.txt
17 system("dir /a /b >> file_list.txt");
18
19 long sum_code = 0;
20 fstream code_file;
21 file_list.open("file_list.txt", std::ios::in);
22 string str_line = "";
23 string t_str = "";
24 unsigned int loc = 0;//查找文件名中的"."
25 string str_last = "";
26
27 while (!file_list.eof())
28 {
29 getline(file_list,str_line);
30 loc = str_line.find(".",0);//从0开始查找"."出现的位置
31 // cout << "loc = " << loc << endl;
32 if (loc != string::npos)
33 {
34 str_last = str_line.substr(loc);
35 // cout << "str_last = " << str_last << endl;
36 }
37 else
38 {
39 continue;
40 }
41
42 if (str_last.compare(".h") == 0
43 || str_last.compare(".c") == 0
44 || str_last.compare(".cpp") == 0)
45 {
46 code_file.open(str_line.c_str(),std::ios::in);
47 cout << "文件名 : " << str_line << endl;
48 }
49 else
50 {
51 continue;
52 }
53
54 //读文件行数
55 while (!code_file.eof())
56 {
57 getline(code_file,t_str);
58 cout << t_str << endl;
59 sum_code++;
60 }
61 code_file.close();
62 cout << endl;
63 }
64 file_list.close();
65
66 cout << "代码行数:" << sum_code << endl;
67 system("pause");
68
69 return 0;
70 }