设为首页 加入收藏

TOP

二维数组的建立与文件操作(二)
2013-02-08 14:30:28 来源: 作者: 【 】 浏览:756
Tags:二维数 建立 文件 操作


  无论构造,还是open,后面都可以加模式选择.以构造器为例:
  [cpp]
  ofstream outfile("DATA.txt",ios::out|ios::trunc);
  用了两种模式,要知道其实这两种模式就是两个8位数,通过"位或"可以把他们连起来用.
  使用完毕,要关闭文件,outfile .close()  就可以了.
  2、再说用ifstream把文件(辅存)里面的东西输入到程序(内存)里面吧.
  下面是一个 DATA.txt 的文件内容:
  [plain]
  hello file!
  Hi David!
  写了三行.然后通过下面程序,就可以把这东西输出到屏幕:
  [cpp]
  int main()
  {
  string s;
  ifstream infile("DATA.txt",ios::in);
  if(!infile)return -1;
  while(infile)
  {
  //istream& getline ( istream& is, string& str ); std里面的
  getline(infile,s);//Get line from stream
  cout<<s<<endl;
  }
  infile.close();
  }
  输出结果是:
  [plain]
  hello file!
  Hi David!
  请按任意键继续. . .
  下面把DATA.txt改一下,解决我们文章一开始提到过的问题,不用命令行模式输入数据,用文本方式.下面是DATA.txt内容:
  [plain]
  12     33  44
  22  463   93
  63    48  9
  好,下面写程序,把文件里面的东西传进数组里面.然后屏幕输出.
  [cpp]
  #include<iostream>
  #include<fstream>
  #include<iomanip> // 因为使用了setw()语句,设置位宽的.
  using namespace std;
  int main()
  {
  int num=3; //这个num自己也可以到控制台输入,程序现在不打算弄这个功能.
  int **M=new int*[num]; //初始化行
  ifstream infile("DATA.txt",ios::in);//初始化文件操作
  if(!infile)return -1;//创建失败就返回错误
  for(int i=0;i<num;i++)
  {
  M[i]=new int[num];//初始化列,到了这里已经成功初始化数组了
  for(int j=0;j<3;j++)//这里开始给二维数组的每一个赋值
  {
  if(infile) infile>>M[i][j];//infile中读取数值,有空格就停,游标一直往下走下去
  cout<<setw(5)<<M[i][j]; //设置位宽为5,输出到屏幕
  }
  cout<<endl; // 输出一行后换行
  }
  infile.close();  //关闭文件
  }
  输出结果:
  [plain]
  12    33   44
  22   463   93
  63    48    9
  意键继续. . .
  上面是一个格式化的输出哦~~位宽一定,为5,好看多了.这东西你可以再写进文件里面,哈哈~~

      

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++ 如何使用时间函数 下一篇HDU 3790 最短路径问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: