c/c++学习笔记一(2006/11/14)

 C/C++学习笔记一(2006/11/14)

1、#ifndef:
   指示符#ifndef用来检查头文件的内容是否在前面已经被定义

过,如果定义过,则#ifndef与#endif之间的语句将不被执行.所以

习惯上要把头文件的定义写在这两个语句之间.
如:对于MYHEAD.H这个头文件

#ifndef MYHEAD_H
#define MYHEAD_H

#include "myhead.h"

   ......

#endif

2、 #ifdef
    指示符#ifdef常常被用来判断一个预处理器常量是否已被定

义,以便有条件地包含程序代码。
如:
 int main()
 {
    #ifdef DEBUG
    cout<<"Beginning execution of main()/n";
    #endif
    string word;
    vector<string> text;
    while(cin>>word)
    {
  #ifdef DEBUG
  cout<<"word read:"<<word<<"/n";
  #endif
  text.push_back(word);  
    }
 //.....

 }
在此程序中,如果定义了DEBUG,则其中包含的两个语句都将被

执行,如果没有定义,则其中的两个输出语句不被执行。


编译C++程序时,编译器自动定义了一个预处理器名字__cpluspl

us(前面是两个下划线)
在编译标准C时,编译器自动定义了一个预处理器名字__STDC__
可以用此来区分是C还是C++程序

比较有用几个预定义名字:
__LINE__和__FILE__

__LINE__记录文件已经被编译的行数
__FILE__包含正在被编译的文件的名字
如:
 if(element_count==0)
 cerr<<"Error:"<<__FILE__
     <<":line"<<__LINE__
     <<"element_count must be non-zero./n";

__TIME__和__DATE__

__TIME__当前被编译文件的编译时间
__DATE__当前被编译文件的编译日期
格式  hh:mm:ss 
如:
 08:17:05   Oct 31 2006


assert 使用:

assert()是C语言标准库中提供的一个通用预处理器宏。常用其

来判断一个必需的前提条件,以便程序能够正确执行。与其关联

的头文件是:#include <assert.h>
如:
 assert(filename!=0);
表示:如果后面的程序能够正确执行,需要filename不为0,如是

条件为假,即其等于0,断言失败,则程序将输出诊断消息,然后

终止。

其c++名字是:cassert
C库头文件的C++名字总是以字母C开头
注:在C++中使用C标准库中的头文件时,一定要使用using

namespace std;来使其处在一个名字空间中,才能正确使用,还

如:<bitset>


C++中的文件输入输出

头文件:#include <fstream>

使用文件输入输出实例:

  #include <fstream>
//为了打开一个输出文件,先声明一个ofstream类型的对象:
  ofstream outfile("name-of-file");
//为了测试是否已经成功打开了一个文件,如下判断:
  //如文件不能打开值为false
  if(!outfile)
      cerr<<"Sorry! We were unable to open the file!/n";

//为了打开一个输入文件,先声明一个ifstream类型的对象:
   ifstream infile("name of file");
   if(!infile)
      cerr<<"Sorry! We were unable to open the file!/n";

一个简单程序:
    #include <iostream>
    #include <fstream>
    #include <string>

    int main()
    {
     ofstream outfile("out_file");
 ifstream infile("in_file");
 if(!infile){
     cerr<<"error:unable to open input file!/n";
     return -1;
 }
 if(!outfile) {
     cerr<<"error:unable to open output file!/n";
     return -2;
 }
 string word;
 while (infile>>word)
   outfile<<word<<' ';
 return 0;
    }

参考文献:
 C++ Primer 3rd Edition

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值