-
C++ open 打开文件(包括打开模式一览表)
所属栏目:[语言] 日期:2023-05-24 热度:7739
在对文件进行读写操作之前,先要打开文件。打开文件有以下两个目的:
通过指定文件名,建立起文件和文件流对象的关联,以后要对文件进行操作时,就可以通过与之关联的流对象来进行。
指明文件的使用方式。使用方式[详细] -
C++文件类(文件流类)和、用法详解
所属栏目:[语言] 日期:2023-05-24 热度:2255
《C++输入输出流》一章中讲过,重定向后的 cin 和 cout 可分别用于读取文件中的数据和向文件中写入数据。除此之外,C++ 标准库中还专门提供了 3 个类用于实现文件操作,它们统称为文件流类,这 3 个类分别为:
ifst[详细] -
计算机文件究竟是什么(通俗易懂)
所属栏目:[语言] 日期:2023-05-24 热度:3787
内存中存放的数据在计算机关机后就会消失。要长久保存数据,就要使用硬盘、光盘、U 盘等设备。为了便于数据的管理和检索,引入了“文件”的概念。
一篇文章、一段视频、一个可执行程序,都可以被保存为[详细] -
cin.getline():C++读取一行字符串(整行数据)
所属栏目:[语言] 日期:2023-05-24 热度:1302
getline() 是 istream 类的成员函数,它有如下两个重载版本:
istream & getline(char* buf, int bufSize);
istream & getline(char* buf, int bufSize, char delim);
第一个版本从输入流中读取 bufSize-1 个字[详细] -
cin.get():C++获取单个字符
所属栏目:[语言] 日期:2023-05-24 热度:5676
get() 是 istream 类的成员函数,它有多种重载形式(请猛击这里了解详情),不过本文只介绍最简单最常用的一种:
int get();
此函数从输入流中读入一个字符,返回值就是该字符的 ASCII 码。如果碰到输入的末尾,[详细] -
C++ cout格式化输出(非常详细)
所属栏目:[语言] 日期:2023-05-24 热度:5382
在某些实际场景中,我们经常需要按照一定的格式输出数据,比如输出浮点数时保留 2 位小数,再比如以十六进制的形式输出整数,等等。
对于学过 C 语言的读者应该知道,当使用 printf() 函数输出数据时,可以通过设[详细] -
C++ cout.tellp()和cout.seekp()方法具体解析
所属栏目:[语言] 日期:2023-05-24 热度:611
通过前面章节的学习我们知道,无论是使用 cout 输出普通数据,用 cout.put() 输出指定字符,还是用 cout.write() 输出指定字符串,数据都会先放到输出流缓冲区,待缓冲区刷新,数据才会输出到指定位置(屏幕或者文件[详细]
-
C++ cout.write():输出字符串
所属栏目:[语言] 日期:2023-05-24 热度:5798
《C++ cout.put()》一节中,讲解了 ostream 类提供的 put() 成员方法的用法,其用于向输出流缓冲区中添加要输出的单个字符。而在某些场景中,我们还需要输出指定的字符串,这时可以使用 ostream 类提供的 write() 成[详细]
-
C++ cout.put():输出单个字符
所属栏目:[语言] 日期:2023-05-23 热度:4625
通过前面的学习我们知道,C++ 程序中一般用 ostream 类的 cout 输出流对象和 << 输出运算符实现输出,并且 cout 输出流在内存中有相应的缓冲区。但有时用户还有特殊的输出需求,例如只输出一个字符,这种情况下可以借[详细]
-
C++输入流和输出流(超级详细)
所属栏目:[语言] 日期:2023-05-23 热度:6865
本教程一开始就提到,C++ 又可以称为“带类的 C”,即可以理解为 C++ 是 C 语言的基础上增加了面向对象(类和对象)。在此基础上,学过 C 语言的读者应该知道,它有一整套完成数据读写(I/O)的解决方案:[详细]
-
C++ static_cast、dynamic_cast、const_cast和reinterpret_cast(四种类型转换运算符)
所属栏目:[语言] 日期:2023-05-23 热度:8479
上节讲到,隐式类型转换是安全的,显式类型转换是有风险的,C语言之所以增加强制类型转换的语法,就是为了强调风险,让程序员意识到自己在做什么。
但是,这种强调风险的方式还是比较粗放,粒度比较大,它并没有表[详细] -
C++类型转换函数:将当前类的类型转换为其它类型
所属栏目:[语言] 日期:2023-05-23 热度:8958
转换构造函数能够将其它类型转换为当前类类型(例如将 double 类型转换为 Complex 类型),但是不能反过来将当前类类型转换为其它类型(例如将 Complex 类型转换为 double 类型)。
C++ 提供了类型转换函数(Type[详细] -
C++转换构造函数:将其它类型转换为当前类的类型
所属栏目:[语言] 日期:2023-05-23 热度:6681
在 C/C++ 中,不同的数据类型之间可以相互转换。无需用户指明如何转换的称为自动类型转换(隐式类型转换),需要用户显式地指明如何转换的称为强制类型转换。
自动类型转换示例:
int a = 6;
a = 7.5 + a;
编译[详细] -
C++重载=(赋值运算符)
所属栏目:[语言] 日期:2023-05-23 热度:7311
在《到底什么时候会调用拷贝构造函数?》一节中,我们讲解了初始化和赋值的区别:在定义的同时进行赋值叫做初始化(Initialization),定义完成以后再赋值(不管在定义的时候有没有赋值)就叫做赋值(Assignment)。[详细]
-
C++深拷贝和浅拷贝(深复制和浅复制)完全攻略
所属栏目:[语言] 日期:2023-05-23 热度:6214
对于基本类型的数据以及简单的对象,它们之间的拷贝非常简单,就是按位复制内存。例如:
class Base{
public:
Base(): m_a(0), m_b(0){ }
Base(int a, int b): m_a(a), m_b(b){ }
private:
int m_[详细] -
C++拷贝构造函数(复制构造函数)详解
所属栏目:[语言] 日期:2023-05-23 热度:3210
拷贝和复制是一个意思,对应的英文单词都是copy。对于计算机来说,拷贝是指用一份原有的、已经存在的数据创建出一份新的数据,最终的结果是多了一份相同的数据。例如,将 Word 文档拷贝到U盘去复印店打印,将 D 盘的[详细]
-
C++ exception类:C++标准异常的基类
所属栏目:[语言] 日期:2023-05-23 热度:9877
C++语言本身或者标准库抛出的异常都是 exception 的子类,称为标准异常(Standard Exception)。你可以通过下面的语句来捕获所有的标准异常:
try{
//可能抛出异常的语句
}catch(exception &e){
//处理异[详细] -
C++ throw(抛出异常)详解
所属栏目:[语言] 日期:2023-05-23 热度:2508
在《C++异常处理》一节中,我们讲到了 C++ 异常处理的流程,具体为:
抛出(Throw)--> 检测(Try) --> 捕获(Catch)
异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。[详细] -
C++重载[](下标运算符)详解
所属栏目:[语言] 日期:2023-05-23 热度:9066
C++ 规定,下标运算符[ ]必须以成员函数的形式进行重载。该重载函数在类中的声明格式如下:
返回值类型 & operator[ ] (参数);
或者:
const 返回值类型 & operator[ ] (参数) const;
使用第一种声明方式,[[详细] -
常见的C++异常类型以及多级catch匹配
所属栏目:[语言] 日期:2023-05-23 热度:9481
首先来回顾一下上节讲到的 try-catch 的用法:
try{
// 可能抛出异常的语句
}catch(exceptionType variable){
// 处理异常的语句
}
我们还遗留下一个问题,就是 catch 关键字后边的exceptionType va[详细] -
C++异常处理技术基础,C++ try catch入门
所属栏目:[语言] 日期:2023-05-23 热度:560
开发程序是一项“烧脑”的工作,程序员不但要经过长期的知识学习和思维训练,还要做到一丝不苟,注意每一个细节和边界。即使这样,也不能防止程序出错。
专家指出,长期作息不规律 + 用脑过度的危害很大,[详细] -
了解大话C++模板编程的来龙去脉
所属栏目:[语言] 日期:2023-05-23 热度:5969
计算机编程语言种类繁多,目前能够查询到的有 600 多种,常用的不超过 20 种,TIOBE 每个月都会发布世界编程语言排行榜,统计前 50 名编程语言的市场份额以及它们的变动趋势。该榜单反映了编程语言的热门程度,程序员[详细]
-
C++类模板5分钟学习教程
所属栏目:[语言] 日期:2023-05-23 热度:2189
C++ 除了支持函数模板,还支持类模板(Class Template)。函数模板中定义的类型参数可以用在函数声明和函数定义中,类模板中定义的类型参数可以用在类声明和类实现中。类模板的目的同样是将数据的类型参数化。
声[详细] -
简化C++函数模板5分钟入门教程
所属栏目:[语言] 日期:2023-05-23 热度:7271
在《C++函数重载》一节中,为了交换不同类型的变量的值,我们通过函数重载定义了四个名字相同、参数列表不同的函数,如下所示:
//交换 int 变量的值
void Swap(int *a, int *b){
int temp = *a;
*a = *[详细] -
C++运算符重载注意事项以及归纳
所属栏目:[语言] 日期:2023-05-23 热度:6161
在 C++ 中,类型的名字(包括类的名字)本身也是一种运算符,即类型强制转换运算符。
类型强制转换运算符是单目运算符,也可以被重载,但只能重载为成员函数,不能重载为全局函数。经过适当重载后,(类型名)对象这[详细]