数据的输入与输出
一.流的概念(stream)
定义:从源设备到目标设备的字符序列。
输入流:指从输入设备流向内存的字节序列(input stream)。
输出流:指从内存流向输出设备的字节序列(output stream)。
表示:cin:输入流,cout:输出流。调用#include<iostream.h>这个头文件。
二.cin和析取运算符
输出单个变量:cin>>x;
例1-1:cin用法
#include<iostream.h>
void main()
{
int x; //定义变量x,开辟储存空间,值待定。
cin>>x; //程序执行到cin时,等待键盘数据的输入,形成输入流,按Enter键结束
} //析取运算符“>>”,从输入流中提取数据存入变量x中。
注意:析取运算符具有自动识别数据类型的功能,根据变量从输入流中提取对应的数据
输入多个变量:cin>>x1>>x2>>x3;其中x1,x2,x3为任意类型的变量。如int,float,char等。
- 输入数据的个数与cin语句中变量的个数相同。
- 各输入数据之间用间隔符分开。(包括空格,Enter,Tab)
- 全部数据输入完成后,按下Enter键结束。
- 析取运算符后一定跟变量,不能跟常量。
如cin>>“x=”>>x;cin>>12>>x;cin>>‘x’>>x;都是错误的格式。
三.cout和插入运算符
输出单个变量和常量:cout<<x;
例1-2:cout用法
#include<iostream.h>
void main()
{
int x=3; //定义变量x,开辟储存空间,值为3。
cout<<xl; //插入运行算符<<从内存取出变量x的值为3,插入到输出流中
} //程序执行到cout,将输出流数据显示出来。
连续输出:cout<<x1<<x2<<x3;
- 在输出多个数据时,一定要注意数据之间插入分隔符,空格,Tab,\n或endl,字符(串)常量。否则输出数据时不容易区分。
例1-3
#include<iostream.h>
void main()
{
char ch1='c';
char ch2[]="hello C++";
cout<<ch1<<endl;
cout<<ch2<<endl;
cout<<'c'<<endl;
cout<<"hello everyone!"<<endl;
int x=3;
int y=4;
cout<<"x="<<x<<" "<<"y="<<y<<endl;//使用分隔符
}
其输出结果为:
四.输出格式控制符
输出格式控制的头文件“#include<iomanip.h>”。
设置浮点数的精度:setprecision(n);//n代表有效位数。
设置输出域:setw(n);//n代表输出数据所占的列数。
设置对其格式:setiosflags(f);//f代表常量ios::right和ios::left。
取消对其格式:resetiosflags(f);//f代表常量ios::right和ios::left。
注意:默认输出格式为右对齐
例1-4
#include<iostream.h>
#include<iomanip.h>
void main()
{
//setprecision()对后面所有的数据有效
cout<<setprecision(3)<<3.1415<<" "<<2.435<<endl;
//setw()只对紧跟在其后的一个数有效
cout<<setiosflags(ios::left)<<setw(8)<<456<<setw(8)<<123<<endl;
cout<<resetiosflags(ios::left)<<setw(8)<<123<<endl;
}
其输出结果为:
例1-5:九九乘法表
#include<iostream.h>
#include<iomanip.h>
void main()
{
for(int i=1;i<10;i++)
{
for(int j=1;j<10;j++)
cout<<setw(4)<<i*j;//setw()格式控制
cout<<endl;
}
}
其输出结果为:
五.数制基数
hex:十六进制
oct:八进制
dec:十进制
例1-6:输入输出不同进制的数
#include<iostream.h>
void main()
{
int x=34;
//设置数制基数后一直有效,直到被改变
cout<<hex<<17<<" "<<x<<" "<<18<<endl;
cout<<17<<" "<<oct<<x<<" "<<18<<endl;
cout<<dec<<17<<" "<<x<<" "<<18<<endl;
int x1,x2,x3,x4;
cin>>oct>>x1;//034
cin>>x2;
cin>>hex>>x3;//0x25
cin>>dec>>x4;//78;
cout<<x1<<" "<<x2<<" "<<x3<<" "<<x4<<endl;
}
其输出结果为: