C++面向对象程序设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.14 编程实作

例2-26】 在C盘根目录下建立一文件student.dat,并从键盘输入3个学生的数据到该文件中。每个学生的数据包括姓名、身份证号,以及数学、英语、计算机等课程的成绩。

1.编写源程序

<1> 启动Visual C++ 6.0,选择“文件 | 新建”菜单命令。

<2> 从弹出的“新建”对话框中选择“文件”标签,从其列表项中选择“C++ Source File”,指定文件目录,并输入文件名student。

<3> 在Visual C++ 6.0的编辑器中输入下面的程序代码。

//Eg2-26-1.cpp
#include <iostream>
#include <fstream>
using namespace std;
void main(){
   ofstream outfile("C:\\student.dat");
   char name[8],id[8];
   int math,eng,computer;
   for(int i=0;i<3;i++) {
      cout<<"输入姓  名: "; cin>>name;
      cout<<"输入身份证号: "; cin>>id;
      cout<<"输入数学成绩: "; cin>>math;
      cout<<"输入英语成绩: "; cin>>eng;
      cout<<"输入计算机成绩: "; cin>>computer;
      outfile<<name<<" "<<id<<" "<<math<<" "<<eng<<""<<computer<<endl;
   }
   outfile.close();
}

2.运行程序,查看建立的文件

编译程序,修改程序中的错误,然后运行程序。根据屏幕提示输入每个学生的各项数据,每输入一个数据后按一次Enter键。程序结束后,用Windows的记事本或VC的编辑器打开建立的文件C:\student.dat,观察文件格式,如图2-4所示,然后按相同格式增加5个学生的成绩在文件后面。

图2-4 用记事本打开C++程序建立的文件

3.读取建立的文件数据

文件一经建立,就能多次使用,可以对它进行读取、修改、查找等操作。现在编写一程序将文件student.dat中的数据读出来,并显示在屏幕上。在C++编辑器中输入、编译并运行下面的程序,然后检查屏幕上的数据是否与文件C:\student.dat中的数据一致。

//Eg2-26-2.cpp
#include<iostream>
#include<fstream>
using namespace std;
void main(){
   ifstream infile("c:\\student.dat");
   char name[8],id[8];
   int math,eng,computer;
   infile>>name;
   while (!infile.eof()){
      infile>>id>>math>>eng>>computer;
      cout<<"姓  名: "<<name<<endl;
      cout<<"身份证号: "<<id<<endl;
      cout<<"数学成绩: "<<math<<endl;
      cout<<"英语成绩: "<<eng<<endl;
      cout<<"计算机成绩: "<<computer<<endl<<endl;
      infile>>name;
   }
   infile.close();
}

为了对文件中的数据进行各种处理,常常将文件中的数据读取到数组、树、链表或栈之类的数据结构中。

上面的程序采用了标准C++的头文件,将其中的语句:

#include <iostream>
#include <fstream>
using namespace std;

替换成

#include <iostream.h>
#include <fstream.h>

再编译、运行程序,看看结果是否相同。