C++ 补充

标准输入流

cin>>x;
  • 读入整型数时,以第一个非数字为终结
  • 读入字符串时,以第一个空格,Tab 或换行符为终结
cin.getline(str,len,ch);
//读入一个字符串,ch 被从流中提出,但不存入 str
ch=cin.get();
//读入一个单独的字符
cin.ignore(len,ch);
//忽略一串字符,ch 同上

标准输出流

cout 
//输出到标准设备
cerr 
//输出错误信息
clog 
//输出错误日志
  • 流操纵算子

[1]整型数

int n;
cout<<hex<<n<<endl;
//16进制
cout<<dec<<n<<endl;
//10进制
cout<<oct<<n<<endl;
//8进制

[2]浮点数

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
    double x = 1234567.89,y = 12.34567;
    int n = 1234567;
    int m = 12;
    cout<<setiosflags(ios::fixed)<<setprecision(6)<<x<<endl<<y<<endl<<n<<endl<<m;
    return 0;
}
  • E表示法
    E6 指的是10的6次方,即1后面6个0。
    记住:d.dddE+n 指的是将小数点向右移 n 位。
    之所以称为“浮点”,就是因为小数点可移动。
  • cfloat 头文件
  • wchar_t 可以存储系统扩展字符集中的任意成员。

[3]设置域宽

cin.width(5);
cin>>string;
cout<<string<<endl;
cin>>string;
cout<<string<<endl;

cout.put()

成员函数

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int main(){
    cout<<'$'<<endl;
    cout.put('$')<<endl;
    return 0;
}
  • C++ 语言赋予了字符特殊的含义
    双引号字符用来分隔字符串字面值,
    因此,不能把双引号放在字符串字面值中。

                        climits 中的符号常量
符号常量表示
CHAR_BITchar 的位数
CHAR_MAXchar 的最大值
CHAR_MINchar 的最小值
SCHAR_MAXsigned char 的最大值
SCHAR_MINsigned char 的最小值
UCHAR_MAXunsigned char 的最大值
SHRT_MAXshort 的最大值
SHRT_MINshort 的最小值
USHRT_MAXunsigned short 的最大值
INT_MAXint 的最大值
INT_MINint 的最小值
LONG_MAXlong 的最大值
LLONG_MAXlong long 的最大值

字符串

1.面向行的输入:getline()
getline() 函数读取整行,它使用通过回车键输入的换行符来确定输入结尾。
要调用这种函数,可以使用 cin.getline() 。

cin.getline(str,20);

2.面向行的输入:get()
string 类简化了字符串合并操作。

#include <iostream>
#include <algorithm>
#include <cmath>
#include <cfloat>
#include <cstdlib>
using namespace std;
int main(){
    string str2 = "love china";
    string str3;
    str3 = str1 + str2;
    str1+=str2;
    cout<<str3<<endl;
    return 0;
}    

指针

使用 new 来分配内存
在C语言中,可以用库函数 malloc 来分配内存;
在C++中,又更好的方法——new 运算符。

程序员要告诉 new ,需要为哪种数据类型分配内存;
new 将找到一个长度正确的内存块,并返回该内存块的地址。
程序员的责任是将该地址赋给一个指针。

int * pn = new int; 

new int 告诉程序,需要适合存储 int 的内存。
new 运算符根据类型来确定需要多少字节的内存。
然后,它找到这样的内存,并返回其地址。
接下来,将地址赋给 pn , pn 是被声明为指向 int 的指针。
现在,pn 是地址,而 *pn 是存储在那里的值。
将这种方法与将变量的地址赋给指针进行比较:

int higgens;
int * pt = &higgens; 

在这两种情况下,都是将一个 int 变量的地址赋给了指针。
在第二种情况下,可以通过名称 higgens 来访问该 int ,
在第一种情况下,只能通过该指针进行访问。

  • 使用 delete 释放内存
    它使得在使用完内存后,能够将其归还给内存池,这是通向最有效的关键一步。
int * ps = new int;   // allocate memory with new
...                          // use the memory
delete ps;          // free memory with delete when done

警告:只能用 delete 来释放使用 new 分配的内存。然而,对空指针使用 delete 是安全的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值