//in.txt内容
/*
*/
//out.txt内容
/*
*/
/*
just you for
本文出于西北农林科技大学信心工程学院学生XX,如果有问题可以加QQ:384222590
*/
#include<iostream>
#include<string>//要用到string
#include<map>//要用到map
#include<fstream>//要用到istream和ostream
using namespace std;
int main(void)
{
fstream file_in("c://in.txt",ios::in);//文章
fstream file_out("c://out.txt",ios::out);//将文章中的其他字符转换为空格
if(!file_in)//如果文件打开失败
{
cout<<"Open or Create file failed!"<<endl;
}
if(!file_out)//如果文件打开失败
{
cout<<"Open or Create file failed!"<<endl;
}
string line;//用于存贮读出的一行字符串
while(getline(file_in,line))//读出一行
{
int length=line.length();//字符串的长度
for(int i=0;i<length;i++)
{
if((line[i]<65)||(line[i]>90&&line[i]<97)||line[i]>122)//处理除字母之外的其他字符
{
line[i]=' ';//转换为空格
}
}
file_out<<line<<endl;//输出到新文件中
}
file_in.close();//关闭文件
file_out.close();//关闭文件
map<string,int> m_word;//map统计并且自动排序
fstream file_word("c://out.txt",ios::in);//打开处理后的文章
string temp;//存放读出的字符串
while(!file_word.eof())//如果文件没有结束,继续循环
{
file_word>>temp;
m_word[temp]++;//这是重中之重,如果是map<int,string>,将与众不同
}
map<string,int>::iterator iterator;//迭代器
for(iterator=m_word.begin();iterator!=m_word.end();iterator++)
{
cout<<iterator->first<<" "<<iterator->second<<endl;//输出而已
}
file_word.close();//关闭文件
return 0;
}
//输出结果:
/*
*/