内容一是比较简单的if语句和循环的使用,没有什么好说的。
内容二我使用了两种方法对这篇新闻计数,第一种是用了string类型。将全部文章内容转化为大写字母,然后用count函数实现对单个字母的计数,然后用循环来实现对26个字母的计数。第二种方法是用char类型 使用循环中cin.get()来实现对每个字符的输入,在循环中用if语句对每个字符进行字母判断并储存个数。至于拓展的用文件输入其实也只是将手动输入改成了读取文件中的每个字符并且用第二种方法进行判断并储存。此次实验我学习了count函数和转化函数的运用,对数组和循环的运用也更加熟练。
在这里给出几种读取文件的方法
首先添加头文件:
#include <iostream> #include <fstream> #include <cassert> #include <string>
1. 逐行读入
void readTxt(string file)
{
ifstream infile;
infile.open(file.data()); //将文件流对象与文件连接起来
assert(infile.is_open()); //若失败,则输出错误消息,并终止程序运行
string s;
while(getline(infile,s))
{
cout<<s<<endl;
}
infile.close(); //关闭文件输入流
}
2. 逐个字符读入(忽略空格与回车
void readTxt(string file)
{
ifstream infile;
infile.open(file.data()); //将文件流对象与文件连接起来
assert(infile.is_open()); //若失败,则输出错误消息,并终止程序运行
char c;
while (!infile.eof())
{
infile >> c;
cout<<c<<endl;
}
infile.close(); //关闭文件输入流
}
3. 逐个字符读入(包括空格与回车)
void readTxt(string file)
{
ifstream infile;
infile.open(file.data()); //将文件流对象与文件连接起来
assert(infile.is_open()); //若失败,则输出错误消息,并终止程序运行
char c;
infile >> noskipws;
while (!infile.eof())
{
infile>>c;
cout<<c<<endl;
}
infile.close(); //关闭文件输入流
}
