zoukankan      html  css  js  c++  java
  • 第二十一章流 1流的操作 简单

    // 第二十一章流 1流的操作
    // 1.1 缓冲
    // 1.2 流和缓冲区
    // 1.3 标准输入输出对像
    // 1.4 重定向 重定向的意思是可以重新定向输出的设备
    // 1.5 对像代表流
    // 2.0 用count输出
    /*#include <iostream>
    using namespace std;
    int main()
    {
    	char *ch = "hello world";
    	//用强制转换方式将char*指针ch转换为void*之后,输出的就是字符串ch的地址,也就是第一个字符的位置
    	cout<<(void*)ch<<endl;
    	//输出的&ch则是指针ch的地址
    	cout<<&ch<<endl;
    }*/
    // 2.2 清理缓冲区
    // 2.3 有关输出的相关函数
       //ostring类除了提供各种类型的operator<<()函数外,还提供了put()和write()函数
       //put函数用于输出单个字符 write()函数用于输出字符
    /*#include <iostream>
    using namespace std;
    int main()
    {
    	cout.put('h').put('e').put('l').put('p').put('\n');
    	cout<<endl;
    	char ch[] = "hello world";
    	int length = strlen(ch); 
    	cout.write(ch,length).put('\n').write(ch,length-6)<<endl;
    
        return 0;
    }*/
    //2.4 设置输出的字段宽度
    /*
    #include <iostream>
    using namespace std;
    int main()
    {
    	cout.width(20);//width()只影响将要显示的对像,然后字段宽度自动恢复为默认值
    	cout<<"help"<<endl;
    	cout<<"help\n";
    	cout.width(1);
    	cout<<"help"<<endl;
        return 0;
    }*/
    // 2.5 设置填充字段
    /*#include <iostream>
    using namespace std;
    int main()
    {
    	cout.width(20);
    	cout.fill('*'); //调用fill()方法来填充为其它字符合
    	cout<<"help"<<endl;
    	cout.fill(' ');
    	cout.width(25);
    	cout<<"help"<<endl;
        return 0;
    }*/
    
    // 2.6 设置浮点数的显示精度
    /*#include <iostream>
    using namespace std;
    int main()
    {
    	//浮点数据默认精度为6到7位
        float pi = 3.1415926f;
    	float p2 = 9876.622345f;
    	cout<<pi<<endl;
    	cout<<p2<<endl;
    	cout<<"设置显示精度为15位"<<endl;
    	cout.precision(15);
    	cout<<pi<<endl;
    	cout<<p2<<endl;
    	cout<<"设置显示精度为3位"<<endl;
    	cout.precision(3);
    	cout<<pi<<endl;
    	cout<<p2<<endl;
    	return 0;
    }*/
    
    // 2.7 输出末尾的0_setf()
    /*#include <iostream>
    using namespace std;
    int main()
    {
    	float price = 4.0f;
    	cout.precision(6);
    	cout.setf(ios_base::showpoint);//showpints指示是否显示点九,true为显示 false为不显示
    	cout<<price<<endl;
    	return 0;
    }*/
    
    // 2.8 设置标志
    //cout.setf(ios::left);    按指定的宽度向左对齐
    //cout.setf(ios::internal);符号左对齐,值右对齐
    //count.setf(ios::right);  按指定的宽度向右对齐全
    /*#include <iostream>
    using namespace std;
    int main()
    {
    	const float number = -185;
    	cout.width(10);
    	cout.setf(ios::internal);
    	cout<<number<<endl;
    
    	cout<<"计算15个标志的十进制值:"<<endl;
    	cout<<"boolalpha:"<<ios::boolalpha<<endl;
    	cout<<"fixed:"<<ios::fixed<<endl;
    	cout<<"scientific:"<<ios::scientific<<endl;
    	cout<<"hex:"<<ios::hex<<endl;
    	cout<<"oct:"<<ios::oct<<endl;
    	cout<<"dec:"<<ios::dec<<endl;
    	cout<<"internal:"<<ios::internal<<endl;
    	cout<<"right:"<<ios::right<<endl;
    	cout<<"left:"<<ios::left<<endl;
    	cout<<"showpos:"<<ios::showpos<<endl;
    	cout<<"showpoint:"<<ios::showpoint<<endl;
    	cout<<"showbase:"<<ios::showbase<<endl;
    	cout<<"uppercase:"<<ios::uppercase<<endl;
    	cout<<"unitbuf:"<<ios::unitbuf<<endl;
    	//cout<<"skipws"<ios::skipws<<endl; 这个不知道为什么并没有开启
    	cout<<endl;
        return 0;
    }*/
    /*
    #include <iostream>
    using namespace std;
    int main()
    {
       char ch[10];
       cin>>ch;
       cout<<ch;
       return 0;
    }*/
    /*
    //setf()函数的返回值
    #include <iostream>
    using namespace std;
    int main()
    {
    	int x;
    	x = cout.setf(ios::left);
    	cout<<x<<endl;
    	x = cout.setf(ios::right);
    	cout<<x<<endl;
    	x = cout.setf(ios::internal);
    	cout<<x<<endl;
    	system("pause");
        return 0;
    }*/
    //标志设置不当出现的错误
    /*#include <iostream>
    using namespace std;
    int main()
    {
    	const float number = -185;
    	cout.width(10);
    	cout.setf(ios::left);
    	cout<<number<<endl;
    	cout.width(10);
    	cout.setf(ios::right);
    	cout<<number<<endl;
    	cout.width(10);
    	cout.setf(ios::internal);
    	cout<<number<<endl;
        return 0;
    }*/
    
    // 2.9 setf()函数原型
    // 1 fmtflags setf(fmtflags)
    // 2 fmtflags setf(fmtflags, fmtflags) 第二个参数则指定要清除的标志位,来统一管理这三个标志,这个常叫指示标志位,它的作用是恢复三个标志left,right internal为初始化状态
    //ios::adjustfield
    /*#include <iostream>
    using namespace std;
    int main()
    {
    	const float number = -185;
    	cout.width(10);
    	cout.setf(ios::left);
    	cout<<number<<endl;
    	cout.width(10);
    	cout.setf(ios::right,ios::adjustfield);
    	cout<<number<<endl;
    	cout.width(10);
    	cout.setf(ios::internal,ios::adjustfield);
    	cout<<number<<endl;
        return 0;
    }*/
    
    
    // 2.10 所有15个标志以及3个指示标志
    /*#include <iostream>
    using namespace std;
    int main()
    {
    	int x=185;
    	cout.setf(ios::showpos);
    	cout<<x<<endl;
    	float y = 193.34f;
    	cout.setf(ios::scientific);
    	cout<<y<<endl;
    	cout.unsetf(ios::showpos);
    	cout<<x<<endl;
    	cout.unsetf(ios::scientific);
    	cout<<y<<endl;
        return 0;
    }*/
    
    // 2.11 unset()函数 可以实现标记位的清空,该函数的使用方法如下
    /*
    #include <iostream>
    using namespace std;
    int main()
    {
    	const float number = -185;
    	cout.width(10);
    	cout.setf(ios::left);
    	cout<<number<<endl;
    	cout.width(10);
    	cout.unsetf(ios::adjustfield);
    	cout.setf(ios::right);
    	cout<<number<<endl;
    	cout.width(10);
    	cout.unsetf(ios::adjustfield);
    	cout.setf(ios::internal);
    	cout<<number<<endl;
        return 0;
    }*/
    
    
    // 2.12 标准控制器
    // 标准控制器的使用
    /*
    #include <iostream>
    using namespace std;
    int main()
    {
    	const int x = 703710; 
    	cout<<"x:"<<oct<<x<<endl; //八进制输出
    	cout<<"x:"<<showbase<<x<<endl; //在八进制前添加0
    	cout<<"x:"<<hex<<x<<endl;      //十六进制输出
    	cout<<"x:"<<uppercase<<x<<endl;//用大写表示十六进制
    	cout<<"x:"<<dec<<x<<endl;      //十进制输出
    	cout<<"x:"<<showpos<<x<<endl;  //在正数前添车+号
    
    	float y=3.56000f;
    	cout.precision(0); //设置精度为0;
        cout<<"y:"<<scientific<<y<<endl; //以科学计数法输出浮点数
    	cout.unsetf(ios::floatfield);
    	cout<<"y:"<<showpoint<<y<<endl;
    	//精度为0时输出浮点数的有效位数字(6或7位),精度不为0时输出该精度限制内的数字,这个精度指的是总精度,这两种情况均包括小数点
    	cout.unsetf(ios::showpoint); //去掉小数点显示
    	cout<<"y:"<<fixed<<y<<endl; //精度指的是小数点后的精度,也不包括小数点
    	char str1[] = "abc";
    	char str2[] = "abc";
    	const char str3[] = "abc";
    	const char str4[] = "abc";
    	const char* str5 = "abc";
    	const char* str6 = "abc";
    	cout<<boolalpha<<(str1==str2) <<endl;
    	//str1和str2都是字符数组,每个都有其自己的存储区,它们的值则是各存储区首地址,因此不相等
    
    	cout<<boolalpha<<(str3==str4)<<endl;
    	//str3和str4同上,只不过多了个const表示它们所指向的数据区不能修改因此不相
    
    	cout<<boolalpha<<(str5==str6)<<endl;
    	//str5和str6并非数组而是字符指针,并不分配存储区,str5和str6中的"abc"以常量形式存于存储取
    	//也就是静态数据区,而它们自己仅是指向该区首地址的指针相
    	//分别输出false false true
    
    	cout.width(20);
    	cout<<right<<y<<endl; 
    	cout.width(20);
    	cout<<left<<y<<endl;
    	cout.width(20);
    	cout<<internal<<y<<endl;
    
        return 0;
    }*/
    
    //2.13 iomanip头文件与标准控制符
    //最常风的控制符分别是 setw() setfile() setprecision()0
    /*#include <iostream>
    #include <iomanip>
    using namespace std;
    int main()
    {
    	float n=3.1456f;
    	for(int i=0; i<5; i++)
    	{
    	    n = n*n;
    		cout<<setw(6)<<setfill('.')<<i<<setfill(' ')<<setw(22)<<setprecision(2)<<fixed<<n<<endl;
    	}
        return 0;
    }*/
    
    //showpoint标志的作用
    /*
    #include <iostream>
    #include <iomanip>
    using namespace std;
    int main()
    {
    	float n=3.1456f;
    	for(int i=0; i<5; i++)
    	{
    	    n = n*n;
    		cout<<setw(6)<<setfill('.')<<i<<setfill(' ')<<setw(22)<<setprecision(2)<<showpoint<<n<<endl;
    	}
        return 0;
    }
    */
    

      

  • 相关阅读:
    array_diff()和array_diff_assoc()
    React出现错误:Uncaught TypeError: this.setState is not a function
    predis操作大全
    MacOS下出现-bash: 命令: command not found的解决方法
    OnCreateClient学习总结
    MFC之CSingleDocTemplate构造函数
    CString 的成员函数详解
    MFC 中Invalidate的使用
    CFileFind类的使用总结(转)
    MFC CSplitterWnd的用法
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2709693.html
Copyright © 2011-2022 走看看