一、分类

1.标准输入输出
  键盘输入,显示器输出。
2.文件输入输出
  以外存为对象,即硬盘、光盘等。
3.串输入输出
  对内存中指定空间进行输入输出。

二、c语言中的输入输出

#include <stdio.h>
1.scanf,printf
  char a,b;
  scanf("%c%c",&a,&b);
  printf("%c%c",a,b);
  scanf用回车来判断输入是否结束,也就是说不能将回车当做字符赋值给a,b。
  %c时可以得到tab,空格,但不能得到回车
  %s时不能得到tab,空格,更不能得到回车,因为是以tab,回车作为字符串开始结束的标志,即字符串中不包含空白字符。
  printf可以指定宽度:
  e.g.    int a=365,float b=3.14;
  则printf("%5d",a)=<空格><空格>365(宽度5为整个数的宽度)
  printf("%10f",b)=<空格><空格>3.140000(宽度10为整个数的宽度,小数点算一位)

  printf("%10.4f",b)=<空格><空格><空格><空格>3.1400(宽度10为整个数的宽度,宽度4为小数部分宽度,小数点算一位)

  若改10.4f为0.4f,则只指定小数的位数。

  scanf也可以指定宽度:
  e.g.    scanf("%2d", &x);
  x输入123,则x=12,即只要输入的前2位。

  scanf格式控制:
  %d,%i=有符号10进制数
  %u=无符号10进制数
  %o=无符号8进制数
  %x,%X=无符号16进制数
  %c=单个字符
  %s=字符串,将字符串送到一个字符数组中,必须是char[]而不是char*,在输入时以第一个非空白字符开始,以第一个空白字符结束。字符串以串结束标志 ‘\0’ 作为其最后一个字符。
  %f,%e、E,%g、G=实数,都一样。

  printf格式控制:
  %f=默认6位小数
  %e、E=指数形式输出实数
  %g、G=以%f和%e两者较短的一个形式输出

2.getchar,putchar
  getchar可以一直输入字符(包括tab,空格,但不包括回车),直到遇到回车,也就是说不能将回车当做字符赋值。遇到回车后,只取缓冲区的第一个字符来赋值。
  putchar输出指定的单一字符。
  e.g.    char a=getchar();
  putchar(a);
3.gets,puts
  gets可以接受空白符,以回车为结束标志,还是不能得到回车字符;
  puts就是相应的输出,输出完了会自动换行,不用认为加上换行符。

三、c++中的输入输出

#include <iostream>
c++将数据的输入输出,即数据从一个对象传送到另一个对象的过程称为流,内存中有缓冲区来存放数据,缓冲区里的数据就是流。
endl立即输出流中所有数据并换行,\n只换行。
1.cin、cout
  using namespace std;
  cin>>a>>b;
  cout<<a<<b;
  e.g. 若输入字符串,char a[20];
  cin<<a;
  则空白字符为开始和截止字符,不能识别tab,空格。
  缓冲区中有数据时cin就不会请求键盘输入,而是从缓冲区读取。
2.cin.get,cout.put
  cin.get分为4种,即无参,1个参数,2个参数,3个参数。
  cin.get():无参时,相当于c语言的getchar(),即a=cin.get(),可用cout.put(a)输出;
  cin.get(ch):1个参数时,同无参;
  cin.get(字符数组名,接收字符数目):2个参数时,是对于数组用的,不可用cout.put(a)输出,因为是数组;
  e.g. char a[20];
  cin.get(a,10);
  cout<<a;
  把输入字符的前9个字符存入a中,后面的舍弃,数组第十个单元是'\0'。
  cin.get(字符数组名,接收字符数目,结束符):3个参数时,跟2个参数一样,只不过一般都省略了结束符,只用2个参数的cin.get;
3.cin.getline
  跟cin.get的2个参数用法一样
4.getline

  要include<string>,不是iostream里的。

  e.g. string a;
  getline(cin,a);

  while(getline(cin,a)){...}//连续读至文末

  a中可包含空白字符。

注意:c语言是用函数实现输入输出,c++是用类对象实现的。

最新文章

  1. java中常用的工具类(一)
  2. 修改stb_image.c以让Duilib直接支持Ico格式的图标显示
  3. python中super关键字的用法
  4. bzoj2326: [HNOI2011]数学作业
  5. 走出MFC子类化的迷宫
  6. Javascript知识四(DOM)
  7. PyUnit框架学习
  8. lua迭代器和仿制药for
  9. 文件系统:ext4,zfs测评结果
  10. 【转载】一行代码加载网络图片到ImageView——Android Picasso
  11. Docker学习笔记 - Docker容器的日志
  12. Gerrit 添加用户
  13. apache2.2服务无法启动 发生服务特定错误:1 的解决办法 (windows服务错误 日志查看方法)
  14. centos php5.4 升级 php7
  15. CM+CDH大数据平台
  16. Runloop原理
  17. tf.Variable和tensor的区别(转)
  18. [Robot Framework] Robot Framework怎么调试?
  19. Swift3.0:PhotoKit的使用
  20. 8 云计算系列之Horizon的安装与虚拟机创建流程

热门文章

  1. luogu 3804 【模板】后缀自动机
  2. bzoj 5329 战略游戏
  3. linux上部署javaWeb项目
  4. ubuntu12.04中极品五笔简体繁体切换
  5. Ubuntu 环境变量及 ADB 配置 (转载)
  6. mount: unknown filesystem type &#39;ntfs&#39;(转载)
  7. win8 使用notepad++写C代码
  8. bzoj 3875: [Ahoi2014&amp;Jsoi2014]骑士游戏【dp+spfa】
  9. Web Scraping with R: How to Fill Missing Value (爬虫:如何处理缺失值)
  10. 在IDEA里gradle配置和使用