流类库与输入 / 输出
内容: 编写程序,以二进制方式打开制定的一个英文文本文件,统计各个字符出现的频率并在每一行前加行号。
要求: 1.熟悉流类库中常用的类及其成员函数的用法;
2.学习标准输入输出及格式控制;
3.学习对文件的应用方法。
#include<iostream>
#include<fstream>
#include<string>
#include<iomanip>
using namespace std;
int main()
{
int charcount[128]={0};//数组初始化为零
string line;
int lineNumber = 0;
ifstream in("text.txt",ios_base::in|ios_base::binary); //从文件读出
ofstream out("text1.txt",ios_base::out|ios_base::binary);//写入文件
if(in)
{
while (!in.eof())
{
getline(in, line);//getline是对文件里面的一行一行的读出来,读到一个字符串里面(头文件:string)
if (line.length() > 0)
{
for (int i = 0; line[i]; i++)
charcount[line[i]]++; //ASCII充当下标
}
lineNumber++;
out <<setfill(' ')<<setw(2)<<lineNumber << " " << line << endl;//setw()函数对齐输出(头文件:iomanip),“2”就是输出的数字占两位
cout <<setfill(' ')<<setw(2)<<lineNumber << " " << line << endl;
}
for(int i=64;i <128;i++)
{
if(charcount[i]!=0)
{
printf("%c: ",i);
printf("%d\n",charcount[i]);
}
}
}
in.close();
out.close();
return 0;
}