c/c++学习笔记二(2006/11/15)

 

静态与动态内存分配的两个主要区别:
 1、静态对象是有名字的变量,我们直接对其进行操作。而动态

对象是没有名字的变量,可通过指针间接地对它进行操作。
 2、静态对象的分配与释放由编译器自动处理。动态对象的分配

与释放,必须由程序员显式地管理,由new和delete两个表达式

完成。

new的两个版本:
1、用于分配特定类型的单个对象。如:
 int *point = new int ( 1024 );注:小括号
    分配了一人没有名字的int 型对象,对象初始值为1024。
2、用于分配特定类型和维数的数组。如:
 int *pia = new int[ 4 ]; 注:中括号
   分配了一个含有四个整数元素的数组。

delete的两个版本:
1、删除单个对象
 delete pint;
2、删除一个对象数组
 delete [] pia;


文件的输入输出

#include <fstream>
  

为了打开一个仅被用于输出的文件(即写入),要先定义一个ofst

ream(输出文件流)类对象
     如:ofstream outfile("copy.txt",ios_base::out);
     传递给ofstream构造函数的实参分别指定了要打开的文件

名和打开模式。ofstream文件可以被打开为输出模式(ios_base:

:out)或附加模式(ios_base::app),在缺省情况下,ostream文件

以输出模式打开。
    下面的定义与上面的等价:
 ofstream outfile("copy.txt");

区别:
    输了模式下打开已经存在的文件,则所有存储在该文件中的

数据都将被丢弃。
    附加模式下打开已经存在的文件,则新写到文件中的数据是

增加到瑞有文件内容的尾部,而不会替换现有文件内容。
    注:如果用这两种模式打开的文件不存在,则程序都会创建

一个新文件。
 ifstream inFile;
 inFile.open(filename.c_str());

如输出:
     #include <fstream>
     int main()
     {
 //打开文件copy.txt用于输出
 ofstream outFile("copy.txt",ios_base::out);

 if(!outFile)
 {
    cerr<<"Cannot open "copy.txt" for output/n";
    return -1;
 }

 char ch;
 while(cin.get(ch))
      outFile.put(ch);
 outFile.close();
 
     }

如输入:
     #include <fstream>
     int main()
     {
 cout<<"用于输入的文件名:";
 string file_name;
 cin>>file_name;

 //打开文件copy.txt用于输入
 ifstream inFile(file_name.c_str());
 if(!inFile) {
    cerr<<"unable to open input file!/n";
    return -1;
        }
 char ch;
 while (inFile.get(ch))
  cout.put(ch);
 inFile.close();
     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值