C++ Primer:第一日学习

以此文开始我的CSDN博客之路


此处记下我学c++的原因,供日后的自己评论该选择的对与错:

学过JavaSe,自觉基础不错(多线程编程除外)

但本科期间学习JavaWeb或是Android的同学大部分工作不是很理想,于是乎萌生了学好C++,走遍天下都不怕的想法


计划尽快将《C++ primer》看上一遍,这个尽快究竟有多久还不敢确定。。


下面是第一天学习C++ Primer的一些学习笔记,以摘抄原书中的内容为主:

1.c++ 标准库:是类库和函数的集合(摘自百度百科)

我理解中的类库有:iostream,string,vector

它们或是提供了类类型(如string类和vector类)

或是提供已经定义好了的关于该类的对象(如istream类型的cin和ostream类型的cout)

或是提供了一些实用的函数,如cctype头文件中的函数,用于判断特殊字符


2.输入操作符(<<操作符)

操作符左侧的操作数必须为ostream对象,右操作数是要输出的值。操作符将其右操作数写到作为其左操作数的ostream对象,输出操作返回的值是输出流本身(即左操作数的值)。既然输出操作符返回的是其左操作数,那么我们就可以将输出请求链接在一起。


3.输入操作符(>>操作符)

该操作符从istream(左操作数)读取数据并保存到右操作数中


4.endl 写入输出流时,具有输出换行的效果,并刷新与设备相关联的缓冲区

以前写着这么个程序的时候也出现过这样的问题

一个进程,每隔一秒输出“%d ”(即一个数字加一个空格)

运行时候发现终端无输出结果

当输出“%d \n”时有结果,查询后得知需要刷新缓冲区,可以printf后fflush()一下


5.读入未知个数的输入

while( std::cin >> temp ){

}

while条件测试输入操作符的返回结果,即测试std::cin

如果流是有效的(也就是说,如果读入的下一个输入是可能的),那么测试成功。遇到文件结束符(windows中为输入ctrl+z,unix中输入ctrl+d) 或是遇到无效输入(如类型不匹配),则istream对象是无效的,处于无效状态的istream对象将导致条件失败


6.标准库头文件用<>,非标准库头文件用" "


7.

每个名字都需要一个using声明

头文件中不要使用using声明,如果头文件中防止using声明,就相当于在包含头文件的每个程序中都放置了同一using声明,不论该程序是否需要using声明


8.  string类  与  字符串字面值不是同一种类型,应区别开

如,在进行string类的 + 操作的时候,操作符左右操作数中必须至少有一个是string类型的

进行+操作会返回一个string对象


9.string对象的读操作

a. string类型的输入操作符:

    1.读取并忽略开头所有的空白字符(如空格,换行符,制表符)

    2.读取字符直至再次遇到空白字符,读取中止

b.用getline读取整行文本

    getline(输入流,string对象)

    getline不忽略行开头的换行符,只要getline遇到换行符,即便它是输入的第一个字符,getline也将停止读入并返回。如果第一个字符就是换行符,则string参数将被置为空string.(由于getline函数返回时丢弃换行符,换行符将不会存储在string对象中)


10.string对象的操作

  s.empty()   返回0表示假,非0表示真

  s.size()   返回string::size_type类型(unsigned型)的值,一定注意的是,不要把size()的返回值赋给一个int变量(某些机器上int变量可能范围过小)。保存一个string对象size的最安全方法就是使用标准库类型string::size_type

  s[n]  返回s中位置为n的字符,下标值通常取string::size_type类型的值    可通过下标直接更改string对象对应位置的字符值

  “==” “>=” “!=” ">" "<" "<=" ">="保持这些操作符的惯有含义

  “=” 可实现string类型的赋值操作,但效率较低(先将str1占有的相关内存释放掉,然后分配给str1足够存放str2副本的内存空间,最后把str2中的所有字符复制到新分配的内存空间)   

   e.g str1 = str2


11.cctype头文件  测试失败返回0

isalnum()  字母或数字     isalpha() 字母             iscntrl() 控制字符           isdigit() 数字  

 isgraph()  空格                islower() 小写字母      isprint() 可打印的字符  ispunct() 标点符号 

 isspace() 空白字符        isupper() 大写字母      isxdigit()十六进制数  

tolower() 返回小写字母形式        toupper()返回大写字母形式


12.一些visual studio2013的快捷键

全屏编辑窗口  shift+alt+enter

删除一行 shift+delete

批量注释 ctrl+k+c  

取消批量注释 ctrl+k+u


13.csdn编辑窗口全屏快捷键  esc


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值