1.C语言中的输入与输出
在C语言中我们常用输入函数“scanf”和输出函数“printf”,而与之配套的格式符有
程序如下:
#include<stdio.h>//C语言版#include<string.h>int main(){int a;//定义一个整数float b;//定义一个单精度浮点数double c;//定义一个双精度浮点数char d;//定义一个字符char e[110];//定义一组字符串scanf("%d",&a);//输入一个整数scanf("%f",&b);//输入一个单精度浮点数scanf("%lf",&c);//输入一个双精度浮点数getchar();//吸收空格 scanf("%c",&d);//输入一个字符getchar();//吸收空格 scanf("%s",&e);//输入一组字符串,也可用gets(e)输入printf("%d",a);//输出一个整数printf("%f",b);//输出一个单精度浮点数[可用%.nf限制小数点后位数,n为自然数]printf("%lf",c);//输出一个双精度浮点[可用%.nlf限制小数点后位数,n为自然数]printf("%c",d);//输出一个字符printf("%s",e);//输出一组字符串,也可用puts(e)输出return 0;}
2.c++中的输入与输出
1.c++支持两套完备的I/O操作:
(1)从c继承而来的输入输出函数;【gste/puts字符串输入输出有部分限制】
(2)c++定义的面向对象的I/O流。
当我们使用c++编译器时需要用到的基础头文件有:
<iostream> :定义了cin、cout、cerr和clog对象。
<iomanip> :该文件通过所谓的参数化的流操纵器(如setw和setprecision),来声明对执行标准化I/O有用的服务。
程序如下:youy
#include<iostream>//cin,cout使用模板using namespace std;int main(){double a;//定义一个双精度浮点数char b;//定义一个字符char c[110];//定义一组字符串cin>>a;//直接输入cin>>b;cin>>c;cout<<a<<endl;//输出加换行cout<<b<<endl;cout<<c<<endl;return 0;}#include<iostream>//cerr使用模板using namespace std;int main(){char a;//定义一个字符char b[110];//定义一组字符串cin>>a;cin>>b;cerr<<a<<endl;//输出加换行cerr<<b<<endl;return 0;}#include<iostream>//clog使用模板using namespace std;int main(){char a;//定义一个字符char b[110];//定义一组字符串cin>>a;//直接输入cin>>b;clog<<a<<endl;//输出加换行clog<<b<<endl;return 0;}
由上可知对于cout、cerr、ciog在微型程序中并没有什么差异,但是在编写和执行一些大型程序时,它们的差异就变得非常明显。所以良好的编程实践告诉我们,使用cerr流来显示错误消息,而其他的日志消息则使用clog流来输出。
2.对于c++中特定格式浮点数
需要头文件<iomanip>
如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点后的位数。常用于限制字符位数。
setiosflags(ios::fixed)是用定点方式表示实数(fixed也可更换成left、right)。setprecision(n)表示输出小数点后面n位小数。
代码如下:
#include<iostream>using namespace std;#include <iomanip>int main(){float a;cin>>a;cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<endl;return 0;}