以下为课本例题:
//《C++程序设计(第4版)》课本例题13.10 :对ASCII文件的操作
#include <iostream>
#include <fstream>
using namespace std;
//save_to_file函数从键盘读入一行字符并将其中的字母存入磁盘文件
void save_to_file()
{
ofstream outfile("f2.dat");
//定义输出文件流对象 outfile,以输出方式打开磁盘文件f2.dat
if (!outfile) {
cerr << "open f2.dat error!\n";
exit(1);
}
char c[80]{};
cin.getline(c, 80); //从键盘读入一行字符
for (int i = 0; c[i] != 0; i++) { //对字符逐个处理,直到遇到0为止
if (c[i] >= 'a' && c[i] <= 'z' || c[i]>='A' && c[i] <= 'Z') //如果是字母字符
{
outfile.put(c[i]); //将字母字符存入磁盘文件f2.dat
cout << c[i]; //同时送显示器显示
}
}
cout << endl;
outfile.close(); //关闭f2.dat
}
//从磁盘文件f2.dat读入字母字符,将其中小写字母改为大写字母,再存入f3.dat
void get_from_file() {
char ch = 0;
ifstream infile("f2.dat", ios::in | ios::_Nocreate);
//定义输入文件流outfile,以输入方式打开磁盘文件f2.dat
if (!infile) {
cerr << "open f2.dat error!\n";
exit(1);
}
ofstream outfile("f3.dat");
//定义输出文件流outfile,以输出方式打开磁盘文件f3.dat
if (!outfile) {
cerr << "open f3.dat error!\n";
exit(1);
}
while (infile.get(ch)) { //当读取字符成功时执行
if (ch >= 'a' && ch <= 'z') //判断ch是否为小写字母
ch -= 32; //小写->大写
outfile.put(ch); //将大写字母存入磁盘f3.dat
cout << ch; //同时在显示器输出
}
cout << endl;
infile.close(); //关闭磁盘文件f2.dat
outfile.close(); //关闭磁盘文件f3.dat
}
int main() {
save_to_file();
//调用save_to_file(),从键盘读入一行字符并将其中字母存入f2.dat
get_from_file();
//调用get_from_file(),从f2.dat读入字母字符,改为大写字母,存入f3.dat
}