c++学习笔记之输入/输出流

简介: 1、wchar_t区别于char,用于存储unicode字符。而char是单字节,只能存储ascii字符。2、cin/cout/cerr/clogcerr无缓冲错误流 clog有缓冲错误流

1、wchar_t


区别于char,用于存储unicode字符。而char是单字节,只能存储ascii字符。


2、cin/cout/cerr/clog


cerr无缓冲错误流          clog有缓冲错误流


3、输出cout


(1)要打印一个表示字符串的char *的值(即第一个字符的内存地址),“<<”直接打印不行,因为已经被重载为将char *数据类型作为字符串来打印。 解决方法是将char *强转为void *类型(c++中输出地址,都要这样转)


(2)put函数用于输出字符,可以联级使用,如:cout.put('A').put('\n')


4、输入cin


  • eof函数:返回是否已经到流结尾
  • get函数:从流输入一个字符并作为返回值返回,在流结尾会返回EOF值。有三个版本:无参数,一个字符数组参数,三个参数。
    三参数版本取多个字符放入字符数组中。参数包括一个字符数组,一个数组长度和一个分隔符(默认'\n')。 分隔符不放入字符数组中,但留在输入流中。
  • getline函数:与get的三参数版本类似,参数包括一个字符数组和一个数组长度。 不同的是将分隔符从流中提取出来丢弃。
  • ignore函数:读取并丢弃一定数量字符(默认一个),遇到指定分割符停止(默认EOF)
  • putback函数:将先前使用get函数获取的字符再放回流中。
  • peek函数:返回输入流下一字符,但不从流中移除。


(1)c++有类型安全的I/O,如遇到意料之外的数据类型,各种相应的错误位会被设置。


(2)非格式化的I/O函数有read、write和gcount。gcount返回最近一次输入操作读取的字符数。


5、流操作符


(1)整型流基数:十进制dex,八进制oct,十六进制hex,自定义进制setbase。如:cout<<setbase(6)<<132



(2)浮点精度:precision和setprecision。如:

cout.precision(2);
cout<<1.675
复制代码



cout<<setprecision(2)<<1.675;
复制代码


(3)域宽:width和setw。 不是粘性的,当输出域宽大于指定域宽不截短,完整打印。使用同上。


(4)自定义输出流操作符: 返回类型和参数都必须是ostream&类型。如:


ostream& endLine(ostream& output){
     return output<<'\n'<<flash;
}
复制代码


使用:cout<<'a'<<endLine<<'b'


6、流的格式状态和流操作符


(1)尾数零和小数点:showpoint


(2)对齐:left、right、internal        internal符号左对齐,数字右对齐,如“+    13”、“0x   13”。


(3)内容填充:fill、setfill


(4)整型流基数:showbase、noshowbase     八进制以0开头如0132,十六进制以0x开头如0x132


(5)科学计数法和定点小数:scientific浮点数以科学计数法格式输出;fixed浮点数以指定小数位数显示。


(6)大小写:uppercase和nouppercase


(7)布尔格式: boolalpha以true和fasle显示;noboolalpha以1和0显示。(c++中bool默认显示1和0)


(8)设置重置格式状态:flag——无参函数返回当前格式(fmtflags类型);单参(fmtflags类型)函数将格式重置会参数的状态


(9)强制输出加号(正号):showpos和noshowpos


7、流的错误状态


错误位 获取状态函数 设置时机
eofbit eof() 输入流遇到文件尾
failbit fail() 流中发生错误(通常可恢复)
badbit bad() 数据丢失错误(不可修复)
goodbit good() 如果上面三个都没设置
  • rdstate()返回流的错误状态
  • clear()将流状态重置为goodbit位
  • clear(ios::failbit)为流设置failbit位


注意: 如果badbit或failbit被设置,或都被设置,则basic_ios成员函数operator!返回true,operator void*则返回false。


8、输出流连接到输入流


连接:cin.tie(&cout)

解除连接:inputstream.tie(0)


目录
相关文章
|
3月前
|
C++
c++学习笔记07 结构体
C++结构体的详细学习笔记07,涵盖了结构体的定义、使用、数组、指针、嵌套、与函数的交互以及在结构体中使用const的示例和解释。
39 0
|
2月前
|
安全 C语言 C++
C++学习笔记
C++学习笔记
|
3月前
|
C++
c++学习笔记02 运算符
C++学习笔记,介绍了C++中的运算符,包括基本的加减乘除、求模、前后置递增递减、赋值运算符、比较运算符和逻辑运算符的使用及其注意事项。
38 6
|
3月前
|
C++
c++学习笔记01 基本知识与数据类型
C++学习笔记,涵盖了C++中的常量定义、数据类型、变量内存大小计算、基本数据类型(整型、实型、字符型、字符串型、布尔型)以及转义字符的使用。
46 4
|
3月前
|
算法 C++
c++学习笔记04 数组
这篇文章是C++学习笔记4,主题是数组。
42 4
|
3月前
|
C++
【学习笔记】【C/C++】 c++字面值常量
【学习笔记】【C/C++】 c++字面值常量
34 1
|
3月前
|
存储 C++
c++学习笔记05 函数
C++函数使用的详细学习笔记05,包括函数的基本格式、值传递、函数声明、以及如何在不同文件中组织函数代码的示例和技巧。
34 0
c++学习笔记05 函数
|
3月前
|
编译器 C++
【C/C++学习笔记】C++声明与定义以及头文件与源文件的用途
【C/C++学习笔记】C++声明与定义以及头文件与源文件的用途
44 0
|
3月前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
40 0
|
3月前
|
C++
c++学习笔记09 引用
C++引用的详细学习笔记,解释了引用的概念、语法、使用注意事项以及引用与变量的关系。
43 0