- 分享
C++基础(5)数据输入与输出
- 2023-7-3 14:12:48 @
C++语言中没有提供专门的输入输出语句,所有的输入输出都是调用标准库函数中的输入输出函数来实现的。在使用时,应在源程序的开头使用如下语句:
#include<iostream>
#include<cstdio>
using namespace std;
C++语言标准函数库提供了许多标准输入、输出函数,其中有6个常用的基本输入、输出函数: (1)流输入cin,流输出cout。 (2)字符输入getchar,字符输出putchar (3)格式化输入scanf,格式化输出prinf 几种输入输出格式的几点说明:
1、cin和cout在Dev C++中只能调用库,而其他输入输出格式要调用库或<stdio.h>库。 2、cin和cout属于C++的概念,调用时涉及输入输出流,而scanf和printf属于C的概念,是C语言的标准输入/输出库中的函数,所以在时效上,scanf和printf优于cin、cout,对于大数据的输入输出,通常情况下应该用scanf、printf。 3、对于普通数据的输入输出,cin和cout比较方便,而在格式化方面,scanf和printf比较容易。cin效率比scanf低很多,尤其输入数据达到20万以上时非常明显,在100万时cin读入就会超时。 4、scanf和printf也缺点,cin和cout能够自动识别变量的数据类型,因此,在进行输入输出时,不需要指定数据类型,printf和scanf函数在输入输出时需指定数据类型。
4.对齐输出
读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。
输入:
只有一行,包含三个整数,整数之间以一个空格分开。
输出:
只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。
样例输入:
** 123456789 0 -1**
样例输出:
** 123456789 0 -1**
#include<cstdio> //使用csanf、printf,须调用sctdio库
using namespace std;
int main()
{
int a,b,c;
//int定义a,b,c为整型变量
scanf("%d%d%d",&a,&b,&c);
//输入给定3个整数变量的值,注意“&”符号不能漏
printf("%8d %8d %8d\n",a,b,c) ;
//使用printf按指定格式输出,注意%8d %8d %8之间要有空格
return 0;
}
5.输出保留3位小数的浮点数
读入一个单精度浮点数,保留3位小数输出这个浮点数。
输入:
只有一行,一个单精度浮点数。
输出:
也只有一行,读入的单精度浮点数。
样例输入:
** 12.34521**
样例输出:
** 12.345**
#include<cstdio>
using namespace std;
int main()
{
float f;
//float 定义f为浮点型变量
scanf("%f",&f);
//输入给定浮点型变量的值,注意“&”符号不能漏
printf("%.3f",f);
//用"%.3f"指定输出格式为保留3位小数的单精度浮点型
return 0;
}
6.输出保留12位小数的浮点数
读入一个双精度浮点数,保留12位小数,输出这个浮点数。
输入:
只有一行,一个双精度浮点数。
输出:
也只有一行,保留12位小数的浮点数。
样例输入:
** 3.1415926535798932**
样例输出:
** 3.141592653580**
#include<cstdio>
using namespace std;
int main()
{
double a;
scanf("%lf",&a);
printf("%.12lf",a);
return 0;
}
7.空格分隔输出
** 读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。**
输入:
** 共有四行:** ** 第一行是一个字符;** ** 第二行是一个整数;** ** 第三行是一个单精度浮点数;** ** 第四行是一个双精度浮点数。**
输出:
输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。
样例输入:
** a**
** 12**
** 2.3**
** 3.2**
样例输出:
** a 12 2.300000 3.200000**
#include<cstdio>
using namespace std;
int main()
{
char c;
//char 定义c为字符型变量
int a;
//int 定义a为整数型变量
float f;
//float 定义f为单精度浮点型变量
double d;
//double 定义d为双精度浮点型变量
scanf("%c%d%f%lf",&c,&a,&f,&d);
//输入给定类型变量的值,注意“&”符号不能漏
printf("%c %d %.6f %.6lf",c,a,f,d);
//按指定格式输出,注意空格不能漏
return 0;
}
8.输出浮点数
** 读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。**
输入:
** 一个双精度浮点数。**
输出:
** 输出有四行:** ** 第一行是按“%f”输出的双精度浮点数;** ** 第二行是按“%f”保留5位小数输出的双精度浮点数;** ** 第三行是按“%e”输出的双精度浮点数;** ** 第四行是按“%g”输出的双精度浮点数。**
样例输入:
** 12.3456789**
样例输出:
** 12.345679**
** 12.34568**
** 1.234568e+001**
** 12.3457**
#include<cstdio>
using namespace std;
int main()
{
double d;
//double 定义d为双精度浮点型变量
scanf("%lf",&d);
//输入双精度变量的值,注意“格式为lf”
printf("%f\n%.5f\n%e\n%g\n",d,d,d,d);
//按指定格式输出,注意输出中“%”出现4次,后面对应的变量名也要出现4次。
return 0;
}
9.字符三角形
给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。
输入:
** 输入只有一行, 包含一个字符。**
输出:
该字符构成的等腰三角形,底边长5个字符,高3个字符。
样例输入:
** ***
样例输出:
** ***
** *****
** *(5个)**
#include<cstdio>
//使用printf,须调用sctdio库
#include<iostream>
//使用cin,须调用iostream库
using namespace std;
int main()
{
char a;
//char 定义a为字符型变量
cin>>a;
cout<<" "<<a<<endl;
cout<<" "<<a<<a<<a<<endl;
cout<<a<<a<<a<<a<<a<<endl;
return 0;
}
//scanf、printf和cin、cout默认情况下是同步的,也就是说你可以在同一个程序中混用两种读入输出方式。