| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 1 标准库 -> 正文阅读 |
|
[C++知识库]1 标准库 |
3.1命名空间的using声明 std::cin。这些名字都用了::操作符,该操作符是作用域操作符。他的含义是右操作数的名字可以再左操作数的作用域中找到。因此,std::cin的意思是说所需名字cin实在命名空间std中定义的。显然,通过这种符号引用标准库名字的方式是非常麻烦的。 使用using声明可以再不需要假钱准namespace-name::的情况下访问命名空间中的名字。 using声明的形式如下: using namespace::name; 一旦使用了using声明,我们就可以直接引用名字,而不需要在引用该名字的命名空间 2 使用标准库类型的类定义 有一种情况下,必须总是使用完全限定的标准库名字:在头文件中。理由是头文件的内容会被预处理器复制到程序中,用#include包含文件时,相当于头文件中的文本将成为我们编写的文件的一部分。如果在头文件中放置using声明,就相当于在包含盖头文件的每个程序中都放置了同一using声明。 3.2标准库string类型 string类型支持长度可变的字符串,C++彼岸准哭将负责管理与储存字符相关的内存,以及提供各种有用的操作。标准库string类型的目的就是满足对字符串的一般应用。 string对象的定义和初始化 string标准库支持几个构造函数。构造函数是一个特殊成员函数,定义如何初始化该类型的对象。 3.2.2 string对象的读写 我们之前学习了用iostream标准库来读写内置类型的值,如int,double等。同理,我们也可以用iostream和string标准库,使用标准输入输出操作符来读写string对象: int main () { string s; cin>>s; cout << s << endl; return 0; } 以上程序首先定义命名为s的string,第二行代码: cin >> s; 从标准输入读取string,并将读入的船存储在s中。string类型的输入操作符: 读取并忽略开头所有的空白字符(如空格,换行符,制表符)。 读取字符直至再次遇到空白字符,读取终止。 因此,如果输入到程序的是“ Hello World ”,则屏幕上输出的是“Hello”,而不包含任何空格 输入和输出操作的行为与内置类型操作符基本相似。尤其是,这些操作符返回左操作数作为运算结果。因此,我们可以把多个读操作或多个写操作放到一起 1 读入位置树木的string对象 和内置类型的输入操作符一样,string的输入操作符也会返回所读的数据流。因此,可以把输入操作作为判断条件,这与读取数据类型的程序做法是一样的,下面程序将从标准输入读取一组string对象,然后再标准输出上逐行输出: int main () { string word; while (cin >> word) cout << word << endl ; return 0; } 上列中,用输入操作符来读取string对象。该操作符返回所读的istream对象,并在读取结束后,作为while的判断条件。如果输入流是有效的,即还未到达文件尾且未遇到无效输入,则执行while循环体,并将读取到的字符串输出到标准输出。如果到达了文件尾,则跳出while循环。 2 用getline 读取整行文本 另外还有一个有用的string IO操作:getline。这个函数接受两个参数:一个输入流对象和一个string对象。getline函数从输入流的下一行读取,并保存读取的内容到string中,但不包括换行符。和输入操作符不一样的是,getline并不忽略行开头的换行符。只要getline遇到换行符,即便他是输入的第一个字符,getline也将停止读入并返回。如果第一个字符就是换行符,则string参数将被置为空string。 getline函数将istream参数作为返回值,和输入操作符一样晔把它作为判断条件。 int main () { string line; while (getline (cin,line)) cont << line << endl; return 0 ; } 由于line不含换行符,若要逐行输出需要自动添加。照常,我们用endl来输出一个换行符并刷新到缓冲区 3.2.3 string对象的操作 1 string的size和empty操作 string对象的长度指的是string对象中字符的个数,可以通过size操作获取; int main ()? { string st( "The expense of spirit \n"); cout << "The size of " << st << "is" << st.size() << " characters, including the newline " << endl ; return 0 ; } 2 string :: size_type 类型 从逻辑上讲, size()成员函数似乎应该返回整型数值,事实上,size操作返回的是string::size_type类型的值。我们需要对这种类型做一些解释。 string类类型和许多其他库类型都定义了一些配套类型。通过这些配套类型,库类型的使用就能与机器无关。size_type就是这些配套类的一种。它定义为与unsigned型具有相同的含义,而且可以保证足够大能够存储任意string对象的长度,为了使用由string类型定义的size_type类型,程序员必须加上作用域操作符来说明所使用的size_type 类型由string类来定义的。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:21:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |