输入输出控制符
在printf和scanf中可以使用以“%”开头的控制符,指明要输入或输出的数据类型以及格式。
常用格式控制符 | 作用 |
%d | 读入或输出int变量 |
%c | 读入或输出char变量 |
%f | 读入或输出float变量,输出时保留小数点后面六位 |
%x | 以十六进制读入或输出整型变量 |
用scanf读入不同类型的变量
用scanf可以一次读入多个类型不同的变量,只要输出的各项之间用空格分隔即可。
#include<iostream>
using namespace std;
int main()
{
int n;char c;float m;
scanf("%d%c%f",&n,&c,&m);//依次输入一个整数,一个字符,在一个小数,它们会被分别放入n,c,m。&n代表“取n的地址”
printf("%d %c %f",n,c,m);
return 0;
}
输入字符时,不会跳火空格(空格也会被当做字符读入),输入其他类型的数据时,会跳过空格。
如果在输入中有scanf中出现的非控制字符,则这些字符会被跳过。
控制printf输出整数的宽度
%nd(如%4d) | 以n字符宽度输出整数,宽度不足时用空格填充 |
%0nd(如%04d) | 以n字符宽度输出整数,宽度不足时用0填充 |
%.nf(如%.4f) | 输出浮点数,精确到小数点后n位 |
int n=123;
printf("%05d,%5d,%5d,%05d",n,n,123456,123456);
/*输出为:00123, 123,123456,123456在输出不足时,会用空格或0代替,在输出足够时,超出部分也会保留*/
float a=123.45;
double b=22.37362723;
printf("%.5f %.2f %.12f",12.3,a,b);
/*输出为:12.30000 123.45 22.373627230000*/
用C++的cout进行输出
#include<iostream>
using namespace std;
int main()
{
int n=5;
double f=3.9;
char c='a';
cout<<"n="<<n<<",f="<<f<<endl;//endl是换行
cout<<123<<",c="<<c;
return 0;
}
/*输出
n=5,f=3.9
123,c=a*/
用C++的cin进行输入
#include<iostream>
using namespace std;
int main()
{
int n1,n2;
double f;
char c;
cin>>n1>>n2>>c>>f;
cout<<n1<<","<<n2<<","<<c<<","<<f;
return 0;
}
/*
输出结果:
5 10k 1.23
5,10,k,1.23*/
用cin,cout和scanf,printf
1.cin,cout速度比scanf,printf慢,输入输出数据量大时用后者
2.一个程序里面不要同时用cin和scanf,不要同时用cout和printf。