C++实验 - 流类库与输入 / 输出

流类库与输入 / 输出

内容: 编写程序,以二进制方式打开制定的一个英文文本文件,统计各个字符出现的频率并在每一行前加行号。

要求: 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;
}

运行结果

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值