word count程序,以及困扰人的宽字符与字符
一个Word Count程序,由c++完成,有行数、词数、能完成路径下文件的遍历。
遍历文件部分的代码如下:
void FindeFile(wchar_t *pFilePath)
{
CFileFind finder;
CString Finddir;
Finddir.Format(pFilePath);
BOOL ret = finder.FindFile(Finddir);
while (ret)
{
ret = finder.FindNextFile();
CString strPath = finder.GetFilePath();
if (finder.IsDirectory())
{
wchar_t *temp = strPath.GetBuffer();
temp += strPath.GetLength();
while (*temp != ('\\'))
{
temp--;
}
CString Filename = temp;
if (Filename == "\\." || Filename == "\\..")
continue;//如果是目录不处理
else
{
FindeFile(strPath.GetBuffer());
//TRACE("目录:%s\r\n", strPath);
}
}
else
{
//TRACE("文件:%s\r\n", strPath);
wchar_t *test;
char *TEST;
test = strPath.GetBuffer(strPath.GetLength());
TEST = WtoC(test);
cout << "\n\n文件" << TEST << endl;
ReadFile(TEST);
}
}
finder.Close();
}
仍然是上次的问题,使用一些MFC的函数时,不可避免会使用到wchar_t类型的,为此写了两个函数WtoC与CtoW来实现两种字符类型字符串的互相转换,代码如下:
char* WtoC(wchar_t *a)
{
char* TEST;
size_t len = wcslen(a) + ;
size_t converted = ;
TEST = (char*)malloc(len*sizeof(char));
wcstombs_s(&converted, TEST, len, a, _TRUNCATE);
return TEST;
}
wchar_t* CtoW(char *a)
{
size_t len = strlen(a) + ;
size_t converted = ;
wchar_t *test;
test = (wchar_t*)malloc(len*sizeof(wchar_t));
mbstowcs_s(&converted, test, len, a, _TRUNCATE);
return test;
}
一开始写完时出现了遍历出来的文件名无法转换,不止无法转换,连输出都输出不了。卡在这一部分许久,至今未知其原因(过后此问题又莫名消失了)今后还是尽量少用两种字符类型字符串混用的程序。
查找行数、词数部分的代码就不贴了,写的图森破没什么好说的。
功能控制上使用了命令行参数,第一次使用这种方式。main函数如下:
int main(int argc, char* argv[])
{
char *filet = "d:\test\t.txt";
Wc wctest;
if (argv[][] == 's')
{
filet = argv[];
wchar_t* F;
F = CtoW(filet);
wctest.mod = 'o';
wctest.HL = ;
wctest.FindeFile(F);
cin >> filet;
return ;
}
if (argc == )
{
cout << "缺少参数!" << endl;
}
else if (argc == )
{
wctest.mod = 'o';
wctest.HL = ;
filet = argv[];
}
else if (argc == )
{
wctest.mod = argv[][];
wctest.HL = ;
filet = argv[];
}
else if (argc == )
{
wctest.mod = argv[][];
if (argv[][] == 'a')
wctest.HL = ;
else
wctest.HL = ;
filet = argv[];
}
wctest.ReadFile(filet);
cin >> filet;
return ;
}
参数中 -l 为行数检查、-w为词数检查,-c为字符数检查,-a为高级模式(空行、注释行、代码行),-o为全输出模式,-s为遍历模式。
在参数如下时

对如下的文件夹:

遍历结果如下:

没有对子路径下的文件继续遍历。
word count程序,以及困扰人的宽字符与字符的更多相关文章
- Hadoop Word Count程序
Hadoop Word Count程序 pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...
- 【2016.3.22】作业 Word count 小程序
今天更下word count程序的设计思路及实现方法. 我的程序贴在coding里,这里就先不贴出来了, 我的coding地址:https://coding.net/u/holy_angel/p/wo ...
- MapReduce工作机制——Word Count实例(一)
MapReduce工作机制--Word Count实例(一) MapReduce的思想是分布式计算,也就是分而治之,并行计算提高速度. 编程思想 首先,要将数据抽象为键值对的形式,map函数输入键值对 ...
- 个人项目作业-Word Count
个人项目作业 1.Github地址 https://github.com/CLSgGhost/SE_work 2.项目相关需求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数. ...
- 软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序
软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序 格式:wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数 ...
- [MapReduce_1] 运行 Word Count 示例程序
0. 说明 MapReduce 实现 Word Count 示意图 && Word Count 代码编写 1. MapReduce 实现 Word Count 示意图 1. Map:预 ...
- Java --本地提交MapReduce作业至集群☞实现 Word Count
还是那句话,看别人写的的总是觉得心累,代码一贴,一打包,扔到Hadoop上跑一遍就完事了????写个测试样例程序(MapReduce中的Hello World)还要这么麻烦!!!?,还本地打Jar包, ...
- Word Count(C语言)
1.项目地址 https://github.com/namoyuwen/word-count 2.项目相关要求 2.1 项目描述 Word Count 1. 实现一个简单而完整的软件工具(源程序 ...
- Word Count作业
Word Count作业 一.个人Gitee地址:https://gitee.com/Changyu-Guo 二.项目简介 该项目主要是模拟Linux上面的wc命令,基本要求如下: 命令格式: wc. ...
随机推荐
- VS2013自带报表+打印功能
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010773667/article/details/27540389 经过了VB版机房收费系统的学习 ...
- BZOJ3998:[TJOI2015]弦论(SAM)
Description 对于一个给定长度为N的字符串,求它的第K小子串是什么. Input 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个. ...
- 根据拼音首字母进行过滤的combobox
keywords: 拼音 首字母 过滤 在combobox中输入汉字拼音的首字母时,下面列出对应的可选项,就像下面这样 1. 首先在数据库中需要设计一个表,专门用来存放药物及对应的拼音首字母,这样当用 ...
- $\mathcal{Friends' \ \ Links}$友情链接
\(\mathcal{JuLao \ \& \ \ Dalao}\) \(\_rqy\) \(\_stdcall\) 并(吊)肩(锤)奋(死)斗(我)的\(Oier\) 王旭 苑骏康 张梓淳 ...
- 七,ESP8266-UDP(基于Lua脚本语言)
https://www.cnblogs.com/yangfengwu/p/7533302.html 那天朋友问我为什么有UDP Sever 和 UDP Client ,,我说:每个人想的不一样,设 ...
- php实现远程网络文件下载到服务器指定目录(方法一)
PHP实现远程网络文件下载到服务器指定目录(方法一) <?php function getFile($url, $save_dir = '', $filename = '', $type = 0 ...
- git reset之后找回本地未提交的代码
头脑发热使用了git reset命令回退到了之前的一个版本,结果把本地没有提交的代码给覆盖掉了..... 作为一个bug员自然是想恢复,毕竟重新写还得再测一遍,本着能懒一点是一点的原则,开始了恢复代码 ...
- 十万的License只取决于一个连接
前段时间看到一份代码,小规模.低难度的一个应用,MVC用到极致,业务逻辑却混成一团麻,应该是中了培训班的毒.现在的程序员,大多是没仔细读过<现代操作系统>,没看过编译原理,不知道堆与栈,没 ...
- 20155238 2016-2017-2《Java程序设计》课程总结
每周作业链接汇总(按顺序) 预备作业1 预备作业2 预备作业3 第一周作业 第二周作业 第三周作业 第四周作业 第五周作业 第六周作业 第七周作业 第八周作业 第九周作业 第十周作业 自认为写得最好一 ...
- 实验的方差分析(R语言)
实验设计与数据处理(大数据分析B中也用到F分布,故总结一下,加深印象)第3课小结--实验的方差分析(one-way analysis of variance) 概述 实验结果\(S\)受多个因素\(A ...