Gitee地址:https://gitee.com/dyh1621838953/WordCount1
此项目我只实现了基本功能,即字符、行数、单词数的计算以及将结果输出到文件中。
该项目用C#语言进行实现。
解题思路:
根据题目要求所知,需要读取一个文件中的内容,然后再计算文件内容的字符数,单词数,行数等,再将结果输出到另一个即result文件中。
所以要考虑文件的读取和输出,对单词数,字符数,行数如何计算,还有命令的输入和读取。
部分代码实现:
主函数部分:
static void Main(string[] args)
{
string message = ""; // 存储用户命令
while (message != "exit")
{
Console.Write("wc.exe ");
message = Console.ReadLine(); // 得到输入命令
string[] arrMessSplit = message.Split(‘ ‘); // 分割命令
int iMessLength = arrMessSplit.Length;
string[] sParameter = new string[iMessLength - 1];
// 获取命令参数数组
for (int i = 0; i < iMessLength - 1; i++)
{
sParameter[i] = arrMessSplit[i];
}
// 获取文件名
string sFilename = arrMessSplit[iMessLength - 1];
WC wc = new WC();
wc.Operator(sParameter, sFilename);
wc.BaseCount(sFilename);
wc.Display();
wc.SaveResult();
}
}
BaseCount函数就是计算文件内容里面的字符数,行数和单词数
public void BaseCount(string filename)
{
try
{
// 打开文件
FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
StreamReader sr = new StreamReader(file);
int nChar;
int charcount = 0;
int wordcount = 0;
int linecount = 0;
//定义一个字符数组
char[] symbol = { ‘ ‘, ‘\t‘, ‘,‘, ‘.‘, ‘?‘, ‘!‘, ‘:‘, ‘;‘, ‘\‘‘, ‘\"‘, ‘\n‘, ‘{‘, ‘}‘, ‘(‘, ‘)‘, ‘+‘ ,‘-‘,
‘*‘, ‘=‘};
while ((nChar = sr.Read()) != -1)
{
charcount++; // 统计字符数
foreach (char c in symbol)
{
if (nChar == (int)c)
{
wordcount++; // 统计单词数
}
}
if (nChar == ‘\n‘)
{
linecount++; // 统计行数
}
}
iCharcount = charcount;
iWordcount = wordcount + 1;
iLinecount = linecount + 1;
sr.Close();
}
catch (IOException ex)
{
Console.WriteLine(ex.Message);
return;
}
}
SaveResult函数是把单词数,行数,字符数的结果输出到文件中
public void SaveResult() { StreamWriter f = new StreamWriter(@"result.txt", false); foreach (string a in sParameter) { if (a == "-c") f.WriteLine("{0}字符数:{1}", sFilename, iCharcount); if (a == "-w") f.WriteLine("{0}单词数:{1}", sFilename, iWordcount); if (a == "-l") f.WriteLine("{0}行数:{1}", sFilename, iLinecount); } f.Close(); Console.ReadKey(); }
测试:

result文件如下:

原文:https://www.cnblogs.com/dyhsblog/p/9695919.html