`
holoblog
  • 浏览: 1227317 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:18924
文章分类
社区版块
存档分类
最新评论

c++I/O流

 
阅读更多
输出流(cout)基本操作
1、使用流插入运算符(<<)
  #include<iostream.h>
  void main()
  {
    char c[]="Good morning";
    cout<<c<<endl;   
  }
  运行结果:
  Good morning
  Press any key to continue
2、使用成员函数
  // ostream &put(char);
  // 输出一个字符,可连续使用
  #include<iostream.h>
  void main()
  {
    cout.put('A').put('/n');
  }
  运行结果:
  A
  Press any key to continue
  // ostream &write(const char*,int);
  // 输出若干个字符
  #include<iostream.h>
  void main()
  {
    char c[]="Good morning";
    cout.write(c,4)<<endl;   
  }
  运行结果:
  Good
  Press any key to continue
输入流(cin)基本操作
1、使用提取运算符(>>)
  //输入用空格、制表符、回车分隔
  #include<iostream.h>
  void main()
  {
    int i,j; char c;
    cin>>i>>c>>j;
    cout<<i<<"["<<c<<"]"<<j<<endl;
  }
  运行结果:
  123 456
  123[4]56
  Press any key to continue
2、使用成员函数
  // int get();
  // 读到结束标记返回EOF(-1)
  #include<iostream.h>
  void main()
  {
    while(true)
    {
      cout<<cin.get()<<'//';
      if(cin.eof())break;
    }
  }
  运行结果:
  12 34  5
  49/50/32/51/52/9/53/10/^Z
  -1/Press any key to continue
  // istream &get(char&);
  // 读到结束标记返回NULL指针
  #include<iostream.h>
  void main()
  {
    char c;
    while(true)
    {
      cout<<cin.get(c)<<endl;
      if(cin.eof())break;
    }
  }
  运行结果:
  12
  0x004300EC
  0x004300EC
  0x004300EC
  ^Z
  0x00000000
  Press any key to continue
  //istream &get(char*,int n,char delimit='/n');
  //get不从流中取出结束符,默认结束符是回车
  #include<iostream.h>
  void main()
  {
    char s1[10],s2[10],s3[10];
    cin.get(s1,10);
    cin.get(s2,10);
    cin.get(s3,10);
    cout<<"---------------------/n";
    cout<<s1<<endl;
    cout<<s2<<endl;
    cout<<s3<<endl;
  }
  运行结果:
  1234567890ABCDEF
  ---------------------
  123456789
  0ABCDEF
  
  Press any key to continue
  //istream &getline(char*,int n,char delimit='/n');
  //getline将从流中取出结束符,默认结束符是回车
  #include<iostream.h>
  void main()
  {
    char s1[10],s2[10],s3[10];
    cin.getline(s1,10);
    cin.getline(s2,10);
    cin.getline(s3,10);
    cout<<"---------------------/n";
    cout<<s1<<endl;
    cout<<s2<<endl;
    cout<<s3<<endl;
  }
  1234567890ABCDEF
  Bye bye
  ---------------------
  123456789
  0ABCDEF
  Bye bye
  Press any key to continue
  //isrream &read(char *,int);
  #include<iostream.h>
  void main()
  {
    char c[10];
    cin.read(c,10);
    cout.write(c,cin.gcount())<<endl;
  }
  运行结果:
  1234567890ABCDEF
  1234567890
  Press any key to continue

2、I/O格式控制
ios类中有一些格式控制标志位,可通过公有函数来改变这些标志位
  long  flags() ;      //返回标志字的值
  long  flags(long);    //设置标志字的值
  long  setf(long);     //设置标志位
  long  setf(long,long);  //设置对齐、数制、浮点标志位
  long  unsetf(long);    //清除标志位
  int   width();
  int   width(int);     //无保持性,对紧随其后输出的数据有效
  char  fill();
  char  fill(chac);     //填充字符
  int   precision();
  int   precision(int);   //设置精度

设置标志位时,可使用ios类定义的枚举常量:
  enum { skipws   = 0x0001,
      left    = 0x0002,  // adjustfield
      right   = 0x0004,
      internal  = 0x0008,
      dec    = 0x0010,  // basefield
      oct    = 0x0020,
      hex    = 0x0040,
      showbase  = 0x0080,
      showpoint = 0x0100,
      uppercase = 0x0200,
      showpos  = 0x0400,
      scientific = 0x0800,  // floatfield
      fixed   = 0x1000,
      unitbuf  = 0x2000,
      stdio   = 0x4000
     };
                
用成员函数控制:
  #include<stdio.h>
  #include<iostream.h>
  void main()
  {
    int i=234;
    printf("%08X/n",i);
    cout.setf(ios::hex,ios::basefield);
    cout.setf(ios::uppercase);
    cout.width(8); 
    cout.fill('0');
    cout<<i<<endl;
    cout.setf(ios::dec,ios::basefield);
    cout<<i<<endl;
  }
  运行结果:
  000000EA
  000000EA
  234
  Press any key to continue

用流操纵算子控制格式
  算子可直接作为I/O输出表达式的一项,算子分为无参算子及有参算子
  算子分为无参算子  iostream.h
    dec           //十进制
    oct           //八进制
    hex           //16进制
    endl          //换行
    flush          //立即输出
  有参算子      iomanip.h
    resetiosflags(long)   //清除标志位
    setfill(int)      //设置填充字符
    setiosflags(long)    //设置标志位
    setprecision(int)    //设置精度
    setw(int)        //设置宽度
  //用流操纵算子控制格式
  #include<iostream.h>
  #include<iomanip.h>
  void main()
  {
    int i=234;
    cout<<hex<<setfill('0')<<setw(8)<<setiosflags(ios::uppercase)<<i<<endl;
    cout<<i<<endl;
    cout<<dec<<i<<endl;
    cout<<setw(8)<<i<<endl;
  }
  运行结果:
  000000EA
  EA
  234
  00000234
  Press any key to continue
显示浮点数
  //没指定是定点(fixed)还是科学(scientific)时,默认输出6位有效数字
  //指定后,精度是指小数点后的有效位数
  #include<iomanip.h>
  #include<stdio.h>
  #include<iostream.h>
  void main()
  {
    double d=123.4567890123456789123456789;
    cout<<d<<endl;             //默认6位有效数字
    cout<<setprecision(4)<<d<<endl;     //保留小数点后3位
    cout<<setiosflags(ios::fixed)<<d<<endl; //科学记数法
    cout<<setprecision(20)<<d<<endl;    //能显示20位吗?
    cout<<resetiosflags(ios::fixed);    //取消定点显示
    cout<<setiosflags(ios::scientific);   //科学记数法
    cout<<setprecision(4)<<d<<endl;     //保留小数点后2位
  }
  运行结果:
  123.457
  123.5
  123.4568
  123.456789012345680
  1.2346e+002
  Press any key to continue
分享到:
评论

相关推荐

    C++ I/O流课件 很不错的哦

    C++ I/O流课件C++ I/O流课件 很不错的哦

    c++ I/O流的常用控制符 C++常用特殊字符

    c++ I/O流的常用控制符 C++常用特殊字符 便于查找 很方便的小文档

    实验七 C++的I/O流(验证性)

    实验七 C++的I/O流(验证性)实验报告 doc 格式

    C++I/O描述

    介绍了 C++的 I/O( 输入输出 )问题,本文结构清晰,讲解简单易懂,对 C++ 的流模型作为细致的分析和讲解, 并介绍了 IO 流类中的各种成员函数,对于输出部分介绍了 cout 流, put 和 write 函数,介绍了 4 种控制...

    C++高级程序设计实验十二模板类的构造& C++的I/O流类库

    C++高级程序设计实验十二模板类的构造& C++的I/O流类库 1.理解和应用类模板和函数模板; 2.理解C++输入输出流类库; 3.掌握ios类中用于控制输入输出成员函数的使用; 4.掌握操纵符格式控制的使用; 5.掌握用户...

    C/C++ 语言参考 比较老的资源了

    此文件非常适合c++初学者,可以用来查找c++I/O流操作函数,标准模板库用法,string用法等,非常实用

    C++ STL 开发技术导引(随书源码)

    第3章 C++ I/O流技术 第二篇 C++STL泛化技术基础 第4章 C++STL泛型库概述 第5章 C++STL泛化技术分析 第三篇 C++STL容器技术 第7章 deque双端队列容器 第8章 list双向链表容器 第9章 slist单向链表容器 第10章 bit_...

    C++ STL 开发技术导引(第6章)

    第3章 C++ I/O流技术 32 3.1 I/O流类 32 3.2 标准输入输出 34 3.3 文件输入输出 36 3.4 流的格式控制 41 3.5 本章小结 45 第二篇 C++ STL泛化技术基础 第4章 C++ STL泛型库概述 48 4.1 C++ STL的...

    C++ I/O文件读写操作的示例代码

    IO: 向设备输入数据和输出数据C++的IO流 c++中,必须通过特定的已经定义好的类, 来处理IO(输入输出) 文件流: 对文件进行读写操作 头文件: 类库: ifstream 对文件输入(读文件) ofstream 对文件输出(写文件) ...

    C++ STL开发技术导引(第5章)

    第3章 C++ I/O流技术 32 3.1 I/O流类 32 3.2 标准输入输出 34 3.3 文件输入输出 36 3.4 流的格式控制 41 3.5 本章小结 45 第二篇 C++ STL泛化技术基础 第4章 C++ STL泛型库概述 48 4.1 C++ STL的...

    C++ STL开发技术导引(第3章)

    第3章 C++ I/O流技术 32 3.1 I/O流类 32 3.2 标准输入输出 34 3.3 文件输入输出 36 3.4 流的格式控制 41 3.5 本章小结 45 第二篇 C++ STL泛化技术基础 第4章 C++ STL泛型库概述 48 4.1 C++ STL的...

    输入输出流

    输入输出流 掌握C++输入/输出流(I/O流)的基本概念; 能够在输入/输出中进行基本的格式控制; 掌握文件的I/O操作。

    c++参考手册 2018版

    基于流的 I/O 同步的输出 (C++20) I/O 操纵符 本地化库 正则表达式库 (C++11) basic_regex − 算法 原子操作库 (C++11) atomic − atomic_flag atomic_ref (C++20) 线程支持库 (C++11) 文件系统库 (C++17)

    C++流类体系与文件操作

    通过本章学习,应理解I/O流、流类与流类体系的概念,掌握流的输入/输出控制格式。了解C++有关文件的概念及文件的使用方法,理解文件流类体系结构,掌握实现文件操作的成员函数的使用方法,学会文本文件的打开、读/...

    C++面向对象程序设计

    前言 第1章 C++语言概述 第2章 数据类型和表达式 第3章 预处理和语句 第4章 函数和作用域 第5章 类和对象(一) 第6章 类和对象(二) 第7章 继承性和派生类 第8章...C++的I/O流库

    c++课件(谭浩强)

    1 C++语言特点 2 面向对象程序设计概述 3 类和对象 4 派生类与继承 5 多态性 6 模板 7 C++的I/O流 8 面向对象系统开发基础

    C和C++串口通讯典型应用实例编程实践

    应用篇通过PC与PC、PC与单片机、PC与智能仪器、PC与PLC、PC与GSM短信模块、PC与远程I/O模块等典型应用实例,详细介绍了C/C++语言利用MSComm控件、API函数实现串口通信的程序设计方法。每个实例的设计任务同时采用C++...

Global site tag (gtag.js) - Google Analytics