1.进行文件相关的操作时:要注意引入头文件 #include <fstream>
2.getline()函数从外部读取一行,ignore() 函数会忽略掉之前读语句留下的多余字符
3.文件位置指针
1.istream :seekg("seek get")
ostream :seekp("seek put")
2.seekg 和 seekp 的第一个参数通常是一个长整型,第二个参数可以用于指定查找方向
3.查找方向可以是 ios::beg(默认的,从流的开头开始定位)
也可以是 ios::cur(从流的当前位置开始定位)
也可以是 ios::end(从流的末尾开始定位)
4.// 定位到 fileObject 的第 n 个字节(假设是 ios::beg)
fileObject.seekg( n );
// 把文件的读指针从 fileObject 当前位置向后移 n 个字节
fileObject.seekg( n, ios::cur );
// 把文件的读指针从 fileObject 末尾往回移 n 个字节
fileObject.seekg( n, ios::end );
// 定位到 fileObject 的末尾
fileObject.seekg( 0, ios::end );
4.内存分配
栈:在函数内部声明的所有变量都将占用栈内存。
堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。
5.如果自由存储区已被用完,可能无法正常分配内存,所以在使用new分配内存时,要注意检查new返回值是否是NULL
6.命名空间可以嵌套
7.C++模板(这个可以仔细学一下)
8.C++中的预定义宏
__FILE__ 这会在程序编译时包含当前行号。
__FILE__ 这会在程序编译时包含当前文件名。
__DATE__ 这会包含一个形式为 month/day/year 的字符串,它表示把源文件转换为目标代码的日期。
__TIME__ 这会包含一个形式为 hour:minute:second 的字符串,它表示程序被编译的时间。
9.C++信号处理
1.// 注册信号 SIGINT 和信号处理程序
signal(SIGINT, signalHandler);
2.raise()生成信号,该函数带有一个整数信号编号作为参数,语法如下:
int raise (signal sig);
sig 是要发送的信号的编号,这些信号包括:SIGINT、SIGABRT、SIGFPE、SIGILL、SIGSEGV、SIGTERM、SIGHUP。
10.注意在运行线程的时候,需要使用 -lpthread 库编译下面的程序
C++学习查缺补漏(三)
最新推荐文章于 2024-07-25 21:43:46 发布