当前位置: 首页 > news >正文

二.C++中C语言的输入输出

一. getchar 和 putchar 函数

1.getchar()

getchar 从单词的直译来看,就是 给我一个字符,事实也正因如此,这是一个读取字符的函数,但他的原型是 int getchar(void) ,如果输入的是字符会返回他的ASCII码值,我们存的时候要用 int 类型,在需要输出字符的时候再强制转换,这是为了兼容性考虑,他来自c语言,所以要想在c++使用,需要包含对应的头文件: <cstdio>

#include <iostream> #include <cstdio> using namespace std; int main() { int ch; ch = getchar(); cout << ch << endl; cout << (char)ch << endl; return 0; }

getchar 只要是字符就都会读取,包括空格

2.putchar()

putchar() 就是将字符打印到屏幕上,一般和getchar搭配使用

#include <iostream> #include <cstdio> using namespace std; int main() { int ch; ch = getchar(); putchar(ch); return 0; }

二.printf 和 scanf

1.printf

printf 的意思是把参数打印到屏幕上,和 c++ 的 cout 很像,其中 print 是打印的意思,后面的 f 是表示 format (格式化) 表示他可以定制输出文本的格式,他来自 c 语言,所以要加上头文件<cstdio>

#include <cstdio> int main() { printf("hello world"); return 0; }

printf 如果想换行,需要在文本的后面加上 \n,而 c++ 则可以用 endl 和 /n

1.2 占位符

在 printf 中,可以使用占位符,占位符是值这个地方可以用其他的值来代替

#include <cstdio> int main() { printf("我有%d个苹果", 2); return 0; }

我有%d个苹果,%d 就是占位符,占位符的前面一律都是百分号%,百分号的后面根据不同的字母表示不同功能的占位符,比如这里的 %d 就表示这里的值必须是一个整数,在文本逗号的后面的数字,表示这里要替换的值

在文本里占位符可以多次使用

#include <cstdio> int main() { printf("我有%d个苹果和%d个梨",2,3); return 0; }

这里要注意的是,文本逗号后要替换的数,会与前面的占位符保持一致,按照顺序,一个对应一个

占位符有很多,这里举例常用的几个
%d -- 整数
%lld -- long long int 整数
%f -- 小数(包含 float 和 double 两种
%Lf -- long double 小数
%c -- 字符
%s -- 字符串

1.3 格式化输出

前面提到 printf 的 f 代表可以格式化输出,可以限定占位符中的最小宽度,意思是最小要输出到多少宽度,如果不够,就会用空格来补

#include <cstdio> int main() { printf("%6d",1234); return 0; }

可以看到前面空了两格,并且他是向左对齐的,如果想向右对齐呢,只需要加上个 - 就行了

#include <cstdio> int main() { printf("%-6d",1234); return 0; }

如果是对于小数,那么就是对包括小数在内的所有数字进行最小宽度的限定,比如

#include <cstdio> int main() { printf("%10f",123.45); return 0; }

可以看到,对于小数而言,补齐的方法是在小数位上面增加 0 而不会左右对齐

在表示小数的占位符中,我们还可以进行限定小数位的操作,只需要在 % 后加上 . + 你想要限定多少小数位,例如

#include <cstdio> int main() { printf("%.2f",1.2345); return 0; }

还可以把限定最小宽度和限定小数位来结合使用

#include <cstdio> int main() { printf("%7.2f",1.2345); //最小宽度是7位,小数点保留两位 return 0; }

除此之外,最小宽度和小数位数还能用 * 星号来代替,根据上面那个例子

#include <cstdio> int main() { printf("%*.*f",7,2,1.2345); return 0; }

按顺序下来,通过传参 7 和 2,跟 7.2f 的用法一样

2.scanf

scanf 是输入语句,和 c++ 中的 cin 一样,来自 c 语言,要包含<cstdio>

#include <cstdio> int main() { int i;//可不初始化 scanf("%d",&i); printf("%d",i); return 0; }

使用 scanf 的使用要取地址,必须使用 & 来给对应的变量取地址

可以多次读取变量

#include <cstdio> int main() { int a, b, c, d; scanf("%d%d%d%d",&a, &b, &c, &d); printf("%d %d %d %d",a, b, c, d); return 0; }

scanf 中常用的占位符和 printf 类似

%d -- 整数
%lld -- long long int 整数
%f -- float 类型小数
%lf -- double 类型小数
%Lf -- long double 小数
%c -- 字符
%s -- 字符串

但要注意的是,在 printf 中 %f 是包含 float 类型和 double 类型的,但是 scanf 中还区分了 float 类型和 double 类型

使用 %c 字符占位符的时候,要记得空格也是字符,是会读取到的,如果不想让scanf读取到字符,就在字符占位符的前面加上一共空格 scanf(" %c",&a); 这样不管有多少个空格就都会跳过

http://www.rkmt.cn/news/1423416.html

相关文章:

  • 学生用户画像-考勤主题扩展标签构建
  • 2026最新宁德柘荣黄金回收+白银回收+铂金回收店铺门店权威榜单TOP1~5家推荐地址电话 - 诚信金利回收
  • 别再手动折腾了!用Docker Compose 5分钟搞定Kamailio + MySQL + RTPproxy的SIP服务全家桶
  • 分治逻辑失效?Claude特有上下文感知分治范式全解析,从Prompt切分到状态回溯一网打尽
  • 【半波整流电路】模拟半波整流电路并在示波器上检查其输出附Simulink仿真
  • 5分钟快速上手:League Akari英雄联盟工具箱完整使用指南
  • 初创团队如何利用 Taotoken 以最小成本启动 AI 产品开发
  • 别再手动PS了!用Python+PyTorch实现多聚焦图像融合,5分钟搞定清晰大片
  • 多层板批量报价对比与成本优化策略避坑与增效
  • 3分钟解锁你的网易云音乐:ncmdumpGUI让NCM文件随处播放
  • 别再死磕书本了!用RTKLIB源码实战入门GNSS单点定位(附避坑指南)
  • DeepSeek把模型打成白菜价后,真正的战场才刚刚开始
  • 2026降AI率工具红黑榜:降AI率工具怎么选?用过才敢说!
  • Claude整数规划求解权限即将收紧!官方确认Q4起限制商用场景调用量,现在必须掌握的3种离线增强策略
  • 解锁ThinkPad散热新境界:TPFanCtrl2双风扇控制终极指南
  • 基于树莓派与Telegram Bot的3D打印机远程监控与控制系统搭建指南
  • 【中国教育发展战略学会教育大数据专业委员会指导,贵州大学承办 | SPIE出版,往届均于会后2-4个月左右见刊并被EI检索】第六届先进算法与信号、图像处理国际学术会议(AASIP 2026)
  • 抖音批量下载工具:3分钟掌握专业级无水印内容采集方案
  • 这次终于选对了!降AIGC网站深度测评与推荐2026最新版
  • BetterNCM Installer:3分钟极速安装网易云插件管理器的完整教程
  • Lindy自动化上线前必须做的3轮压力测试:模拟10万+并发投诉流的混沌工程验证报告
  • 2026优质一体化泵站厂家精选排行 河北联益领跑 助力多领域水务工程落地 - 资讯快报
  • 找西安导游别瞎选!记住这5点,轻松避开99%套路 - 旅行分享
  • 2026年杭州AI搜索优化公司深度对比评测:五大服务商实力全解析 - 品牌报告
  • 从理论到调参:用XGBoost+Python玩转Uplift Model中的X-Learner与Causal Tree
  • 英菲格拉替尼治疗胆管癌FGFR2融合患者的客观缓解率
  • 为AI工作流集成语音交互:基于ElevenLabs与Claude的架构实践
  • AI旅行代理Pack:基于多智能体架构的自主规划与预订系统实践
  • 最好用的发膜?5大维度PK选出年度冠军 - 资讯纵览
  • JoyCon-Driver终极指南:在Windows上解锁Switch手柄的全部潜能