0
点赞
收藏
分享

微信扫一扫

整理C语言和C++中常用输入输出函数

扒皮狼 2022-01-23 阅读 81

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;
}
举报

相关推荐

0 条评论