C++输入输出和字面量
输入输出
普通输入输出
[!TIP]
C++的控制流输入和输出真的,真的,令人无语.
cout,cin 输出流,输入流(空格和换行符不读取)
注意:cout也有很多高级特性,后续学习,其实比printf好用.
检测到EOF后,cin将两位(eofbit和failbit)都设置为1。可以通过成员函数eof()来查看eofbit是否被设置;如果检测到EOF,则cin.eof()将返回bool值true,否则返回false。同样,如果eofbit或failbit被设置为1,则fail()成员函数返回true,否则返回false。注意,eof()和fail()方法报告最近读取的结果:也就是说,它们在事后报告,而不是预先报告。因此应将cin.eof)或cin.fail()测试放在读取后.
<< >> 被重载
endl == "\n"
cout.put() 是历史的老东西,因为当初char当成int存储.
cout.setf()可以显示浮点型的0
cout.precision(3) 显示3位小数
cin.getline() 读取一行 cin.getline(name,20)读取一行20个字符,会丢弃换行符
cin.get() 差不多,可以读取空格.但是会读取换行符到缓冲区,不会丢弃,以至于后续的get()无法继续工作了. cin.get(name,20)
如果不带任何参数的cin.get()可以读取换行符,因为带参数的话,它会把换行符当成行尾,这也是解决上面的方法.
cin.clear() 清理缓冲区.
文本
输出文件
fstream,定义一个处理输出的ofstream类,open(),close()
注意,虽然头文件iostream提供了一个预先定义好的名为cout的ostream对象,但您必须声明自己的ofstream对象,为其命名,并将其同文件关联起来。下面演示了如何声明这种对象:
ofstream outFile;
ofstream fout;
下面演示了如何将这种对象与特定的文件关联起来:
outFile.open ("fish.txt");
char filename [50];
cin >> filename;
fout.open (filename);
主要是这个逼玩意,可以像cout一样,也能用它的方法.
输入文件
fstream,定义一个ifstream,可以当成cin,open(),close().
检验打开与否可以用is_open()方法.
读取文件如果读到eof,可以用eof()返回true.类型不匹配,用fail()返回true,如果文件受损bad()返回true,当然可以直接用good()没问题就返回true.
格式化
C++20的,我真的无语了.建议看这个Loser-HomeWork/#_02-实现自定义字面量-f
字面量
懒得写了,也懒得了解了.
用户自定义字面量
C++11添加的特性
用户可以自定义字面量,可以理解为相应的字面量会按照用户的想法处理.
但是这个必须符合cpp标准给出的形参格式

浙公网安备 33010602011771号