C++点滴

自己没有用C++做过开发,一直是用C#,Java这类OO语言或者JS,shell之类的脚本语言。所以偶尔想写一些C++的代码,还挺困难。

1.如何访问一个二维数组

 1  // the arry that we want to access
 2  char  Country[ 255 ][ 60 =  { " China " " England " " USA " };
 3 
 4  // method 1
 5  int  i = 0 ;
 6  while ( * Country[i]  !=  NULL) {
 7  std::cout  <<  Country[i]  <<  std::endl;
 8  i ++ ;
 9  }
10 
11  // method 2
12  int  i = 0
13  for (i = 0 ;i < 255 ;i ++ )
14  {
15       char *  country  =  pArr -> Country[i];
16      cout << country << endl;
17  }

 

2.函数指针的声明与使用

 1  // 这里定义fp为CReverseIP类型内的一个函数指针类型 
 2  typedef BOOL (CReverseIP:: * fp)( const   char *  inputIP, IPInfo  * ipInfo);
 3 
 4  // 在CReverseIP中声明一个fp类型变量
 5  class  CReverseIP
 6  {
 7  /* some other stuff */
 8  public :
 9      fp fParse;
10  /* some other stuff */
11  }
12 
13  // 赋值
14  revIPTool -> fParse  =   & CReverseIP::GetIPLocation_Old;
15 
16  // 使用
17  retvalue  =  ( this ->* fParse)(strLine.c_str(), ipInfo);

 

3.文件读写(下面这段示例代码中读写具在)

 1  BOOL CReverseIP::ParseIPFileToFile( string  srcFile,  string  desFile)
 2  {
 3      ifstream streamIn(srcFile.c_str());
 4       if (streamIn.fail())
 5      {
 6          cout << srcFile << "  could not be opened. " << endl;
 7           return  FALSE;
 8      }
 9      fstream desStream;
10      desStream.open(desFile.c_str(),ios:: in );
11       if (desStream)
12      {
13          cout << desFile << "  already exists, overwrite?(Y/N) " << endl;
14          desStream.close();
15           char  c;
16           // c = getchar();
17          cin >> c;
18           switch (c)
19          {
20           case   ' Y ' :
21               break ;
22           case   ' N ' :
23               return  FALSE;
24           default :
25               break ;
26          }
27      }
28      
29      ofstream streamOut(desFile.c_str(), ios:: out );
30      streamOut << " ip\tcountry\tprovince\tcity " << endl;
31       string  strLine;
32      IPInfo *  ipInfo  =   new  IPInfo();
33      BOOL retvalue  =  FALSE;
34       while (getline(streamIn, strLine))
35      {
36          retvalue  =  ( this ->* fParse)(strLine.c_str(), ipInfo);
37           if (retvalue == TRUE  &&  ipInfo != NULL)
38          { 
39              streamOut << ipInfo -> ip << " \t " << ipInfo -> country << " \t " << ipInfo -> province << " \t " << ipInfo -> city << endl;
40          }
41           else
42          {
43               continue ;
44          }
45      }
46      streamIn.close();
47      streamOut.close();
48      delete ipInfo;
49       return  TRUE;
50  }

 

转载于:https://www.cnblogs.com/xingyukun/archive/2008/10/15/1311573.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值