C/C++ 标准输入、输出
一、分类
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++是用类对象实现的。
C/C++ 标准输入、输出的更多相关文章
- Java 输入/输出——重定向标准输入/输出
在System类中提供了如下三个重定向标准输入/输出方法. static void setErr(PrintStream err) Reassigns the "standard" ...
- C/C++-标准输入/输出重定向为文件输入/输出
/* Time: 2017-02-22 11:11:15 Describe: C++程序将标准输入/输出重定向为文件输入/输出. */ #include <iostream> #inclu ...
- Linux系统教程 标准输入/输出和重定向
1. 标准输入与输出 我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘:标准输出文件(stdout)和标准错误输出文件(stderr), ...
- java SE :标准输入/输出
一 标准设备输入/输出 A 标准输入/输出类 System B 控制台读写类 Console 标准输入/输出类 System 1 标准输入.标准输出.错误输出流 // 标准输入流 public f ...
- Java重定向标准输入/输出
在System类中提供了三个重定向标准输入/输出的方法static void setErr(PrintStream err) 重定向“标准”错误输出流static void setIn(InputSt ...
- java 输入输出IO流:标准输入/输出System.in;System.out;System.err;【重定向输入System.setIn(FileinputStream);输出System.setOut(printStream);】
Java的标准输入输出分别通过System.in和System.out来代表的,在默认情况下它分别代表键盘和显示器,当程序通过System.in来获取输入时,实际上是从键盘读取输入 当程序试图通过 S ...
- Java标准输入/输出/错误流
只要使用OutputStream对象就可使用System.out和System.err对象引用.只要可以使用InputStream对象就可以使用System.in对象. System类提供了三个静态设 ...
- Java-输入输出
1. 流的分类 java.io 1.1 输入和输出流 File类不能访问文件内容本身,需要使用输入/输出流 输入输出流的方向是相对与内存读写的方向. 1.2 字节流和字符流 字节流 InputStea ...
- java输出重定向
Java的标准输入,输出分别是通过System.in和System.out来代表.默认情况下他们分别代表键盘和显示器. System类里提供了3个重定向标准输入,输出的方法. static void ...
- C++_IO与文件1-输入与输出概述
为了方便起步先从istream类对象cin和ostream类对象cout开始,了解输入和输出的基本方法: 同时使用ifstream和ofstream对象进行文件的输入和输出: 然后详细学习cin和co ...
随机推荐
- Dom4J XML转bean
package com.baiwang.bop.utils; import com.baiwang.bop.client.BopException; import org.dom4j.Element; ...
- 超线程技术——超线程技术让(P4)处理器增加5%的裸晶面积,就可以换来15%~30%的效能提升,本质单核模拟双核!和异步编程的思想无异。
超线程是Intel 所研发的一种技术,于2002年发布.超线程的英文是HT技术,全名为Hyper-Threading,中文又名超线程.超线程技术原先只应用于Intel Xeon处理器中,当时称为Sup ...
- 五.OC基础--1.多态,2.类对象,3.点语法,4.@property&@synthesize,5.动态类型,内省(判断对象是否遵循特定的协议,以及是否可以响应特定的消息)
五.OC基础--1.多态, 1. 多态概念,定义:多态就是某一类事物的多种形态: 表现形式: Animal *ani = [Dog new]; 多态条件:1.有继承关系 2.有方法的重写 2.多态代码 ...
- sqlite支持linq
A small library to easily access SQLite databases from .NET/Mono/MonoTouch applications In order to ...
- (转)Sql Server 保留几位小数的两种做法
原文地址:http://blog.csdn.net/skyandcode/article/details/23523815 问题: 数据库里的 float momey 类型,都会精确到多位小数.但有时 ...
- Linux strace命令(转载)
转载:http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html 简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. ...
- bzoj 4816: [Sdoi2017]数字表格【莫比乌斯反演+逆元】
把题意简化,就是要求 \[ \prod_{d=1}^{min(n,m)}f[d]^{\sum_{i=1}^{n}\sum_{j=1}^{m}e[gcd(i,j)==d]} \] 把幂用莫比乌斯反演转化 ...
- (矩阵快速幂)51NOD 1242斐波那契数列的第N项
斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2) (1, 1, 2, 3, 5, 8, 13, 21, ...
- IE兼容之中文汉字请求乱码-network
IE兼容之中文汉字请求乱码 IE控制台报错: IE网络报错: 解决方法: encodeURI('--- @ -- 子卿 -'); // "---%20@%20--%20%E5%AD%90%E ...
- 再谈spark部署搭建和企业级项目接轨的入门经验(博主推荐)
进入我这篇博客的博友们,相信你们具备有一定的spark学习基础和实践了. 先给大家来梳理下.spark的运行模式和常用的standalone.yarn部署.这里不多赘述,自行点击去扩展. 1.Spar ...