C++ 输入输出的格式化
教程导读
学研发网的这篇信息学奥赛技术教程文章主要介绍了C++ 输入输出的格式化,现在分享给大家,供学习和参考。文章包含4267字,纯文字阅读大概需要11分钟。
教程信息
学习目标
熟练使用printf实现信息输出
熟练使用scanf实现信息输入
除了 cout
和 cin
可以实现输出和输入,我们也可以使用 printf
和 scanf
来实现输出和输入。
printf
和 scanf
是C语言中的函数,但是他们可以按照指定的格式进行输出和输入。在时效上,他们的运行效率要更高、更快。
在C++中,主要使用cout
和cin
居多,printf
和scanf
也需要会用。
一、printf 实现普通输出
代码演示:
#include <cstdio> using namespace std; int main( ) { //输出内容,相当于 cout << "hello 学研发网" printf("hello 学研发网"); return 0; }
执行结果:
二、printf 实现格式化输出
借助 %的占位符识别替换 完成格式化输出。每个%对应一个标识,按从左到右的顺序把对应位置上变量的数据替换后输出展示出来。
如何使用printf输出多个变量
输出多个变量(这里以输出两个变量classNumber【班级编号】,classYuWenPingJunWen【班级语文平均分】为例):
#include <cstdio> using namespace std; int main() { int classNumber=10; double classYuWenPingJunWen=77.5233; //将classYuWenPingJunWen保留两位小数输出 printf("%d班,语文平均成绩是:%.2f \n\n", classNumber, classYuWenPingJunWen); return 0; }
即要输出多少个变量,双引号里就有多少个%.nf(.n表示显示几位小数),并且每个%.nf与后面的变量都是一一对应的。变量名之间用逗号隔开。
如何使用printf分隔多个变量
空格分开:
printf("%d班 语文平均成绩是:%.2f \n\n", classNumber, classYuWenPingJunWen);
即在对应的%.nf之间直接打个空格即可。
换行分开:
printf("%d班\n语文平均成绩是:%.2f \n\n", classNumber, classYuWenPingJunWen);
即在对应的%.nf之间直接加上“\n”即可。\n为换行符号。
int classNumber= 10; printf("班级序号:%d \n\n", classNumber); float classYuWenPingJunWen= 72.5; printf("%d班,语文平均成绩是:%f \n\n", classNumber, classYuWenPingJunWen); // 空格分隔 printf("%d班 语文平均成绩是:%.2f \n\n", classNumber, classYuWenPingJunWen); // \n换行分隔 printf("%d班\n语文平均成绩是:%.2f \n\n", classNumber, classYuWenPingJunWen);
结果展示:
不同数据类型,对应的输出格式控制符不一样,参考下方表格。
练习:班级信息展示。
运用printf来输出班级的一些信息。
输入输出:
【输入描述】无 【输出描述】按需输出班级的信息 【样例输入】无 【样例输出】无
参考代码:
// 整型 班级序号 int classNumber = 10; printf("班级序号:%d \n\n", classNumber); // 长整型 年级序号 long classGradeNumber = 4; printf("年级序号:%lld \n\n", classGradeNumber); // 语文平均分 原样展示 float classYuWenPingJunFen = 81.333333; printf("语文平均分:%f \n\n", classYuWenPingJunFen); // 语文平均分 小数部分显示三位小数 printf("语文平均分 数部分显示三位小数:%.3f \n\n", classYuWenPingJunFen); // 数学平均分 原样展示 double classShuXuePingJunFen = 75.333333; printf("数学平均分:%.3lf \n\n", classShuXuePingJunFen ); // 数学平均分 小数部分显示三位小数 printf("数学平均分 小数部分显示三位小数:%.3lf \n\n", classShuXuePingJunFen); // 合并显示 printf("语文平均分:%.3f,数学平均分:%.3lf \n\n", classYuWenPingJunFen,classShuXuePingJunFen); // 数学平均分等级 char classShuXuePingJunFenGrade= 'B'; printf("数学平均分等级%c \n\n", classShuXuePingJunFenGrade); // 欢迎信息 char huanying[20] = "hello 学研发网"; printf("%s \n\n", huanying); //输出宽度为5,右对齐,不够补空格。100 printf("输出宽度为5,右对齐,不够补空格:%5d \n\n",classNumber); //输出宽度为5,左对齐,不够补空格。100 printf("输出宽度为5,左对齐,不够补空格:%-5d分隔展示 \n\n",classNumber); //输出宽度为5,右对齐,不够补0。00010 printf("输出宽度为5,右对齐,不够补0:%05d \n\n",classNumber); //无论是正数还是负数,都要把符号输出 int test = -123; printf("无论是正数还是负数,都要把符号输出:%+d \n\n",test);
执行结果:
三、scanf 实现输入
练习:显示班级平均分。
通过输入班级编号和班级平均分,获取后输出展示班级和平均分信息。通过练习了解和掌握scanf信息输入。
输入输出:
【输入描述】输入班级编号,班级平均分 【输出描述】输出班级和班级平均分信息 【样例输入】4 75.5 【样例输出】班级序号:4,班级语文平均分:75.500000
参考代码:
#include <cstdio> using namespace std; int main() { int classNumber; float classYuWenPingJunFen; // 输入内容,相当于 cin >> classNumber scanf("%d", &classNumber); printf("输入数字是%d \n",classNumber); printf("请输入班级序号和班级语文平均数\n",classNumber); //相当于 cin >> classNumber>> classYuWenPingJunFen; scanf("%d %f", &classNumber, &classYuWenPingJunFen); printf("班级序号:%d,班级语文平均分:%f",classNumber,classYuWenPingJunFen); return 0; }
执行结果:
四、编程练习
练习:班级平均分计算。
用 scanf 输入五年级四班的:
语文平均成绩、数学平均成绩、英语平均成绩,并计算这三门成绩的总和。
用printf输出。
输入输出:
【输入描述】一行输入三科成绩的平均分用逗号隔开 【输出描述】输出三科平均分的总和 【样例输入】70.5 80.5 90.5 【样例输出】241.5
参考代码:
#include <cstdio> using namespace std; int main(){ char className[20] = "五年级四班"; float yuWenPingJunChengJi,shuXuePingJunChengJi,yingYuPingJunChengJi; float all=0; printf("请输入%s的语文平均成绩、数学平均成绩、英语平均成绩:\n",className); scanf("%f,%f,%f", &yuWenPingJunChengJi, &shuXuePingJunChengJi,&yingYuPingJunChengJi); all=yuWenPingJunChengJi+shuXuePingJunChengJi+yingYuPingJunChengJi; printf("%s的三科平均分总分为%f:\n",className ,all); return 0; }
执行结果:
练习:计算两个学习用品的价格。
班级采购学习优秀生生的奖品,笔和橡皮檫各8个。已知铅笔的单价为1.3,橡皮擦的单价为0.9,请你分别求出两种奖品花了多少钱?(保留两位小数,空格隔开)
输入输出:
【输入描述】一行,两个实数m和n,分别表示香蕉和苹果的单价 【样例输入】1.3 0.9 【样例输出】10.4 7.2
参考代码:
//使用这个头文件转换 #include <sstream> using namespace std; int main( ) { double m,n,a=10; cin>>m>>n; printf("%.2f %.2f",m*a,n*a); return 0; }
执行结果:
练习:计算三个学习用品的价格。
班级采购学习优秀生生的奖品,笔、橡皮檫、笔记本各8个。已知铅笔的单价为1.3,橡皮擦的单价为0.9,笔记本价格2.5,请你分别求出两种奖品花了多少钱?(保留两位小数,空格隔开)
输入输出:
【输入描述】一行,两个实数m和n,分别表示香蕉和苹果的单价 【样例输入】1.3 0.9 【样例输出】10.4 7.2
参考代码:
//使用这个头文件转换 #include <sstream> using namespace std; int main( ) { double m,n,o,a=10; cin>>m>>n>>o; printf("%.2f %.2f %.2f",m*a,n*a,o*a); return 0; }
执行结果:
教程咨询
如果章节内容看不懂,可以联系作者。
教程总结
以上是学研发网为您提供C++ 输入输出的格式化的全部内容,希望教程文章能够帮你了解学习C++ 输入输出的格式化,解决所遇到的问题。 如果觉得学研发网信息学奥赛教程内容还不错,欢迎将学研发网网站推荐给身边需要的人。
教程备注
版权声明:教程内容为学研发网整理和编写,如需转载请联系站长并附上文章原始链接和原始作者信息。
手机阅读
扫描二维码推送至手机访问。
本文链接:http://www.xueyanfa.com/xinaojiaocheng/xinaocpp-27.html