多线程字频率计数

时间:2014-10-11 23:32:33

标签: c multithreading

所以我的程序是计算文本文件中单词的频率。文本文件将被分区为n个部分,并使用n个线程来计算每个部分的单词频率。 假设文本文件仅包含字母和空格,大写字母与小写字母相同。

文本文件的一个例子是

  

这是一个文本文件,其中包含一到十个数字,有些数字低于其他数字,例如一个低于两个

我的问题是当使用fseek和fread读取文本文件的一部分时,它无法正常读取。 我使用开始指示从哪个位置开始阅读,结束表示要读取的字节数。 虽然我检查了开始结束,但我得到的字符串不正确。

例如,

  

从0到48,字符串是'这是一个包含一些数字的文本文件'

     

从48到92,字符串是从1到10,有些数字低于'

     

从92到139,字符串是'这是一个包含一些数字的文本文件'

此外,从thread_exit()返回的变量似乎也不正确。 我做了一个检查,我从 wordFreq 获得的单词和频率与我从thread_exit(), myfreqword 例如,

这是我从每个线程的wordFreq得到的

  

1

     

包含1

     

是1

     

档案1

     

为1

     

从1

     

是1

     

是1

     

降低1

     

数字1

     

降低1

     

数字1

     

一些

     

数字1

     

一个1

     

text 1

     

一个1

     

一些

     

这1

     

其他1

     

十一

     

其中1

     

这样的1

     

比1

     

比1

     

到1

这是我从thread_exit()返回后得到的,这里有一些奇怪的字符串。

  

1

     

1

     

两个1

     

包含1

     

数字1

     

一些

     

其中1

     

是1

     

从1

     

降低1

     

数字1

     

一个1

     

一些

     

十一

     

比1

     

到1

     

是! 1

     

? 1

     

??? 1

     

tw 1

我不知道这里出了什么问题。

0 个答案:

没有答案