//读取文本文件,将其中的元音字母都删除,生成一个新文件。
#include"std_lib_facilities.h"
int main()
try
{ //打开输入文件,并检查是否正常打开。
cout << "Please enter the file name you want to do : ";
string file_name;
cin >> file_name;
ifstream ifs(file_name.c_str());
if (!ifs)error("can't open file ", file_name);
//-------------------------------------------------------------
//打开输出文件,并检查是否正常打开。
cout <<'\n'<< "Please enter the file name you want to write: ";
string write_file;
cin >> write_file;
ofstream ofs(write_file.c_str());
if (!ofs)error("can't open file ", write_file);
//-------------------------------------------------------------
//建立一个string向量,将文件按行存储到其中。
vector<string>file_string;
string str;
while (getline(ifs, str))file_string.push_back(str);
//-------------------------------------------------------------
//将向量中的元音字母都删除。
for (int i = 0; i < file_string.size(); i++)
for (int j = file_string[i].size()-1; j >=0; j--)//从后面开始删除,以保持j的有效性。
{
switch (file_string[i][j])
{
case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':
{
file_string[i] = file_string[i].erase(j, 1);
break;
}
default:break;
}
}
//-------------------------------------------------------------
//向输出文件中输出删减元音字母后的向量。
for(int i=0;i<file_string.size();i++)
for (int j = 0; j < file_string[i].size(); j++)
{
ofs << file_string[i][j];
if (j == file_string[i].size() - 1)ofs << '\n';//保持输入文件的格式。
}
//--------------------------------------------------------------
}
catch (exception& e) {
cerr << "error: " << e.what() << '\n';
return 1;
}
catch (...) {
cerr << "Oops: unknown exception!\n";
return 2;
};
//--------------------------------------------------------------------
C++程序设计原理与实践第11章习题2
最新推荐文章于 2024-07-12 10:45:15 发布