输入和输出

按字符输入输出

按字符输出putchar()

格式

#include <stdio.h>
int putchar(int c);

功能:向终端输出一个字符

参数:要输出的字符的ASCII码值

返回值:

                成功,返回输出字符的ASCII码值

                失败,返回EOF(end of file)

用法

char c='b';
int a=10;
putchar(66);
putchar('A'+32);
putchar(c);
putchar(a);
putchar('\n');

以上代码输出结果为:ABab

按字符输入getchar()

格式

#include <stdio.h>
getchar(int c);

功能:从终端输入一个字符串

参数:无

返回值:

                成功,返回输入字符串的ASCII码

                到达文件末尾或失败,返回EOF

用法

int c=getchar();  //变量c里面存放了输入字符的ASCII码值
putchar(c);

以上代码输出结果:变量c输入的字符

        如果连续按字符输入输出两次,第一次输入的回车会被第二次的getchar()接收。

#include <stdio.h>
#include <stdlib.h>
int main(int argc,char const *argv[])
{int c=getchar();putchar(c);int m=getchar();putchar(m);return 0;
}

注意:

        后面多余的字符会放在输入缓冲区中等待输入(即下一个putchar会输出),如果后面遇见输出功能的函数会完成输出,也就是我们敲的回车键也会放到输入缓冲区内等待输入。字符是排队等待输入的,如果要解决这个问题可以在后面跟一个getchar()。

按格式输入输出

按格式输出printf()

格式

#include <stdio.h>
int printf(const char * format,...);

功能:按照指定格式向终端输出

参数:format:用双引号括起来的格式控制串和输出表

返回值:输出字符的个数

用法

printf("格式控制串",输出表);

格式控制串:包含两种信息

  1. 普通字符:按原样输出
  2. 格式说明:修饰符%后面加格式字符,用于指定输出格式

输出表:要输出的数据,可以没有数据;当有多个数据时用 “ ,” 分隔

int a=10,b=20;
printf("a=%d b=%d\n",a,b);

以上输出结果为:10 20

按格式输入scanf()

格式

#include <stdio.h>
int scanf(const char *  format,...);

功能:按格式从终端输入

参数:format:用双引号括起来的格式控制串和输入表

返回值:

                成功,返回正确输入数据的个数

                当有第一个输入的数据格式不正确时,直接返回0

用法

scanf("格式控制串",地址表);

格式控制串:包含两种信息

  1. 普通字符:按原样输出
  2. 格式说明:修饰符%后面加格式字符,用于指定输出格式

地址表:变量的地址,常用取地址运算符&

int a,b;
scanf("%d%d",&a,&b);
printf("%d %d\n",a,b);

以上输出结果:输出a和b的值

注意:

        scanf输入时要原样输入,如果用scanf时格式控制串中写了除格式控制字符以外的东西时要原样输入才行。

输入分隔符的指定 

scanf输入时,一般用空格、Tab键或者回车键作为分隔符;其他字符做分隔符时,需要在格式控制串中两个格式字符间输入。

例如:

输入 “12 34” 或者输入 “12回车34” 

int a,b;
scanf("%d%d",&a,&b);
printf("%d %d\n",a,b);

例如:

输入 “12,34”

要输入的两个字符中间用逗号隔开,输入的时候要原样带着逗号

int a,b;
scanf("%d,%d",&a,&b);
printf("%d %d\n",a,b);

练习:

一个水分子的质量约为3.0*10^-23g,1夸脱水大概有950g,当输入水的夸脱数后,显示这些水中包含多少水分子,数据表示:3.0e-23,打印数据的格式:%f或%e

#include <stdio.h>
#include <stdlib.h>int main()
{int kua;scanf("%d",&kua);printf("%e\n",kua*950/3.0e-23);return 0;
}

注意:

scanf()函数输入回车符的问题:

        当用到%c输入字符串时,如果下个数据还是char类型,那么回车符会被下次的%c接收到,但是其他格式不会出现这种问题。

例如:

连续输入两个char类型的字符:

char a,b;
scanf("%c",&a);
prinft("%c",a);
scanf("%c",&b);
printf("%c",b);

如果a后面用回车获取值,那么第二个scanf会读到回车。

例如:

连续输入两个int类型的数据:

int a,b;
scanf("%d",&a);
printf("%d",a);
scanf("%d",&b);
printf("%d",b);

两次输入的字符都是int类型的,因此下次输入不会读到char类型的回车。

 

例如:

先输入int类型的数据,再输入char类型的数据

int a;
char b;
scanf("%d",&a);
printf("%d\n",a);
scanf("%c",&b);
printf("%c\n",b);

第二次输入会直接读到回车

综上例子,只要第一次输入后用回车结束,第二次输入的是char类型,不处理回车的话就会接收上一次的回车然后输出。

垃圾字符回收

回收空格、回车和tab

通过空格可以回收一个或多个空格、回车和tab。

char a,b;
scanf("%c",&a);
printf("%c",a);
scanf("%c",&b);
printf("%c\n",b);
回收任意字符
%*c

用%*c能够回收任意一个字符。

char a,b;
scanf("%c",&a);
printf("%c",a);
scanf("%*c%c",&b);
printf("%c\n",b);
getchar()

用getchar()能够回收任意一个字符。

char a,b;
scanf("%c",&a);
printf("%c",a);
getchar();
scanf("%c",&b);
printf("%c\n",b);

格式字符

格式字符类型格式或含义
%dint类型
%ldlong类型
%ffloat类型
%lfdouble类型
%cchar类型
%s字符串
%x十六进制数据
%o八进制数据
%e指数型数据
%p该数据的存放地址
%u十进制无符号整数
%m.nfn:打印小数点后几位        m:位宽
%-数据类型左对齐(默认是右对齐)
%0数据类型用0自动填充不适用的空位置
int a=123;
float b=12.345;
char c='a';
printf("%2d,%8d,%8d,%-8d\n",a,a,a,a);
printf("%f,%3f,%8.2f,%.2f\n",b,b,b,b);
printf("%c,%3c,%-3c\n",c,c,c);

以上输出结果为:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/657185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot汽车租赁系统源码和论文

首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包括软件架构模式、整体功能模块、数据库设计。本项…

Missing or invalid credentials.(Git push报错解决方案)

前言 本文主要讲解git push后报错Missing or invalid credentials的解决方案。这里针对的是windows的。 编程环境&#xff1a;VsCode 问题原因 问题翻译起来就是 凭据缺失或无效。这里我们解决方案是取消vscode里面默认的控制终端git凭据来解决,具体方案如下. 解决方案 1…

3D效果图加树进去太卡,渲染太慢怎么办?

周末的时候&#xff0c;有个朋友私信来问&#xff1a;3dmax模型加树进去打开时特别的卡&#xff0c;是怎么回事。 不知道有没有朋友遇上这么个情况。 3dmax加树建议就用代理&#xff0c;这样相比于直接加而言&#xff0c;会流畅许多。 在3D效果图中&#xff0c;“树代理”是…

萝卜视频源码前后端带视频演示

萝卜影视源码前端是用JAVA开发的全原生APP源码&#xff0c;后端用的是二次开发的苹果CMS&#xff0c;支持局域网投屏&#xff0c;视频软解硬解&#xff0c;播放器自带弹幕功能。支持解析官方视频&#xff0c;支持M3U8&#xff0c;MP4。 开屏广告&#xff0c;全局广告&#xff0…

GitHub国内打不开(解决办法有效)

最近国内访问github.com经常打不开&#xff0c;无法访问。 github网站打不开的解决方法 1.打开网站http://tool.chinaz.com/dns/ &#xff0c;在A类型的查询中输入 github.com&#xff0c;找出最快的IP地址。 2.修改hosts文件。 在hosts文件中添加&#xff1a; # localhost n…

从0开始搭建若依微服务项目 RuoYi-Cloud(保姆式教程完结)

文章接上一章&#xff1a; 从0开始搭建若依微服务项目 RuoYi-Cloud&#xff08;保姆式教程 一&#xff09;-CSDN博客 四. 项目配置与启动 当上面环境全部准备好之后&#xff0c;接下来就是项目配置。需要将项目相关配置修改成当前相关环境。 数据库配置 新建数据库&#xff…

element ui组件 el-date-picker设置default-time的默认时间

default-time &#xff1a;选择日期后的默认时间值。 如未指定则默认时间值为 00:00:00 默认值修改 <el-form-item label"计划开始时间" style"width: 100%;" prop"planStartTime"><el-date-picker v-model"formData.planStart…

TortoiseSVN各版本汉化包下载

首先进入下载版本列表 1.下载地址&#xff1a;https://sourceforge.net/projects/tortoisesvn/files ​ 2.选择自己版本进入​ 3.选择Language Packs进入&#xff0c;选择对应语言包下载。 ​ 4.在TortoiseSVN根目录下点击安装即可。 ​

解密数据清洗,SQL中的数据分析

大家好&#xff0c;数据库表中的数据经常会很杂乱。数据可能包含缺失值、重复记录、异常值、不一致的数据输入等&#xff0c;在使用SQL进行分析之前清洗数据是非常重要的。 当学习SQL时&#xff0c;可以随意地创建数据库表&#xff0c;更改它们&#xff0c;根据需要更新和删除…

canvas测量文字长度(measureText)

查看专栏目录 canvas实例应用100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

数据结构——栈和队列(C语言)

栈种常见的数据结构&#xff0c;它用来解决一些数据类型的问题&#xff0c;那么好&#xff0c;我来带着大家来学习一下栈 文章目录 栈对栈的认识栈的模拟实现栈的练习方法一方法二 栈 对栈的认识 栈&#xff08;stack&#xff09;是限定只能在表的一端进行插入删除操作的线性…

SpringCloud LoadBalancer

SpringCloud LoadBalancer 1.什么是LoadBalancer LoadBalancer&#xff08;负载均衡器&#xff09;是一种网络设备或软件机制&#xff0c;用于分发传入的网络流量负载请求到多个后端目标服务器上&#xff0c;从而实现系统资源的均衡利用和提高系统的可用性和性能。 负载均衡器…

【Tomcat与网络4】Tomcat的连接器设计

目录 1 如何设计一个灵活可靠的连接器 2 主要组件介绍 在上一篇&#xff0c;我们介绍了Tomcat提供服务的整体结构&#xff0c;本文我们一起来看一下Tomcat的连接器的设计。 在前面我们提到Tomcat主要完成两个功能&#xff1a; 处理 Socket 连接&#xff0c;负责网络字节流与…

wifi配网(esp8266和esp32)-http get和post方式

wifi配网(esp8266和esp32)-http get和post方式 通过http get和post方式来给esp芯片配网 步骤&#xff1a; 开机&#xff0c;指示灯亮起后(需要灯闪烁3下后)&#xff0c;需在3s内&#xff08;超过3s则会正常启动&#xff09;&#xff0c;按一下按键&#xff08;注&#xff1a;切…

Springboot做查询数据库某个表的数据时,后台一切正常前台显示不了数据

当我在用springboot做项目的时候查询整个表的数据或者条件查询的时候发现我的后台功能一切正常但是我的前台界面就是显示不了数据&#xff0c;这个问题解决也很简单&#xff0c;就是需要我们平时多加注意&#xff0c;不要漏代码&#xff01;&#xff01;&#xff01; Builder …

Visual Studio 2022 打开“程序包管理器控制台”失败

Visual Studio 2022 打开“程序包管理器控制台”失败 昨天下午&#xff0c;正在用Visual studio 2022写代码&#xff0c;当使用EF core 做数据迁移时&#xff0c;需要用到“程序包管理器控制台”&#xff0c;打开失败&#xff0c;前一秒还好好的&#xff0c;怎么突然就用不了了…

互联网加竞赛 基于深度学习的人脸性别年龄识别 - 图像识别 opencv

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计…

力扣136、只出现一次的数字(简单)

1 题目描述 图1 题目描述 2 题目解读 在非空整数数组nums中&#xff0c;有一个元素只出现了一次&#xff0c;其余元素均出现两次。要求找出那个只出现一次的元素。 3 解法一&#xff1a;位运算 位运算&#xff0c;是一种非常简便的方法。 3.1 解题思路 异或运算&#xff0c;有…

CPN故障诊断(MATLAB)

CPN(Colored Petri Net,彩色Petri网)是在传统Petri网的基础上进行扩展的高级Petri网。它在故障诊断领域有着广泛的应用。 CPN故障诊断的主要思想和步骤如下: 建模:根据系统的结构和功能,采用CPN构建系统的模型。将系统不同组件表示为网的位置,数据/信号流表示为网的转换,故障…

如何通过Hive/tez与Hadoop的整合快速实现大数据开发

一、Hive的功能 Hive是基于Hadoop的一个外围数据仓库分析组件&#xff0c;可以把Hive理解为一个数据仓库&#xff0c;但这和传统的数据库是有差别的。 传统数据库是面向业务存储&#xff0c;比如 OA、ERP 等系统使用的数据库&#xff0c;而数据仓库是为分析数据而设计的。同时…