学习日记:输入输出

news2024/11/16 5:34:28

目录

1.概念

2. C语言函数库提供的输入输出函数

2.1 getchar

2.2 putchar

2.3 printf

附:占位符

2.4 scanf

3.   附加

1.概念

输入是从键盘、鼠标等设备向计算机(内存)

注:c语言本身不提供输入输出功能,使用的是c语言中的“标准输入输出”函数。

2. C语言函数库提供的输入输出函数

使用时需要加上头文件 --- <stdio.h>

getchar/putchar                 操作一个字符

gets/puts                            操作一个字符串

scanf/printf                         格式化的函数

2.1 getchar

功能:从键盘获取一个字符

参数:void --- 表示为空(使用时不需要给实参)

返回值:表示获取到的字符的ASCII码值

eg:

int ret;
ret = getchar();     // 表示获取到getchar读取的字符的ASCII码值

2.2 putchar

功能:输出一个字符

参数:表示要输出的字符

返回值:成功 --- 输出了的字符的ascii码值

               失败 --- 输出 -1

eg:

char ch = 'b';
putchar(ch);     // 结果为b

2.3 printf

一般格式:printf(“格式控制字符串”,输出参数列表);

printf("a = %d\n",a);

(1)格式控制字符串

        a.普通字符 --- 原样输出

        b.占位符    --- 匹配后面的输出参数(%d 、%c、%u等)

附:占位符

注:一个占位符只能匹配一个输出参数

整型

%d                --- 转换为有符号十进制形式

%u                --- 转换为无符号十进制形式

%o                --- 转换为八进制形式

%x                --- 转换为十六进制形式

%X                --- 转换为十六进制形式,字母以大写形式输出

浮点型

%f                --- 转换为十进制形式的小数,输出是默认保留6位小数,不足6位补0

%e                --- 转换为科学计数法形式

%g                --- 以一种更简洁的方式输出,不会输出无意义的0

字符型

%c                --- 转换为字符形式输出

%s                --- 转换为字符串形式输出

注:% [辅助控制符] d

辅助控制符:

#                --- %#x 打印出十六进制数的前缀0x

                  --- %#o 打印出八进制数的前缀 0

m               --- 表示要输出数据的宽度

注:

如果数据本身宽度 > m  此时按照实际输出的宽度

如果数据本身宽度 < m  此时按照m的宽度输出,空的地方补空格   ---   默认右对齐(加上符负号左对齐,加上0 --- 0m 多出来的位置填充0)

.n               --- n为数字 (.2f  表示保留两位小数)

                  --- %.ns 表示保留前n个字符

eg:

#include<stdio.h>

int main(void)
{
    int a = 1234;
    float b = 12.3456;

    printf("%d\n",a);
    printf("%8d\n",a);
    printf("%2d\n",a);
    printf("%#o\n",a);
    printf("%08d\n",a);
    printf("%.2f\n",b);

    
    return 0;
}

运行结果:

2.4 scanf

从键盘输入数据

一般格式:scanf("格式控制字符串",地址列表);

int a;
scanf("a = %d",&a);

(1)格式控制字符串(与printf中一样)

        a.普通字符                --- 原样输入

        b.占位符(与printf一致)  --- 将输入数据转为指定的格式(%lf 和 %f 匹配的时候要做到精确,lf 匹配double类型 , f 匹配float类型)

注:(1)scanf 格式控制中,一般不写普通字符;

        (2)结束条件(遇到非法字符、、超过指定宽度、空白符)--- 空白符:空格、回车、tab

scanf("%3d",&a);

        (3)在输入字符型数据时要注意空白符也是字符型数据。

        (4)%* 可以跳过一个

eg:

#include<stdio.h>

int main(void)
{
    int a;
    scanf("%*d%d",&a);
    printf("%d\n",a);
}

运行结果:

        (5)输入的返回值是输入数据的个数

ret = scanf("%f%f%f",&a,&b,&c)     // 返回的是输入数据的个数

3.   附加

(1)求根号:用 sqrt(数据)

前面需要加上头文件 #include<math.h> 在编译时需要链接,在后面加上lm,l --- 表示连接,m -- 表示math函数库。     

#include<math.h>
sqrt(2)   // 对2求根号,得到根号2的值

(2)清除缓冲区

可以把缓冲区所有垃圾数据全部清除。

                                     

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

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

相关文章

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第四十章 Linux用户层和内核层

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

【React】组件:全面解析现代前端开发的基石

文章目录 一、什么是组件&#xff1f;二、组件的类型三、组件的生命周期四、状态管理五、属性传递六、组合与继承七、最佳实践 在现代前端开发中&#xff0c;React 已成为开发者构建用户界面的首选框架之一。React 的强大之处在于其组件化设计&#xff0c;允许开发者将 UI 拆分…

电量采集模块—应用于工厂车间配电室电网监测系统的搭建

前言 随着社会经济发展&#xff0c;工厂配电电网系统的供电实时监测越来越重要&#xff0c;这不仅是影响工厂安全性&#xff0c;更是工厂自动化的必然环节。工厂电力监测具有长时间在线工作的可靠性、较强的现场操作和与中心站的通讯功能&#xff0c;同时具有长时间记录存储数据…

04 标识符与关键字

1 标识符 标识符用于命名程序中标识像变量和函数这样的元素。 number1 eval(input("number: ")) number2 eval(input("number: ")) number3 eval(input("number: ")) average (number1 number2 number3) / 3 print("average: "…

【MySQL进阶之路 | 高级篇】行锁之临键锁和插入意向锁

1. 临键锁&#xff08;Next-Key Locks&#xff09; 有时候我们既想锁住某条记录&#xff0c;又想阻止其他事务在该记录前边的间隙插入新记录&#xff0c;所以InnoDB就提出了一种称之为Next-Key Locks的锁&#xff0c;官方的类型名称为:LOCK_ORDINARY&#xff0c;我们也可以简称…

Ubuntu20.04 设置静态ip

Ubuntu 从 17.10 开始&#xff0c;已放弃在 /etc/network/interfaces 里固定 IP 的配置&#xff0c;interfaces 文件不复存在&#xff0c;即使配置也不会生效&#xff0c;而是改成 netplan 方式 &#xff0c;配置写在 /etc/netplan/01-netcfg.yaml &#xff0c;50-cloud-init.y…

手把手教你使用 Python 制作超级玛丽游戏

编写一个完整的《超级玛丽兄弟》&#xff08;Super Mario Bros.&#xff09;风格的游戏需要涉及到多个方面&#xff0c;包括游戏循环、玩家控制、敌人AI、碰撞检测、关卡设计、得分系统等等。由于这是一个复杂的项目&#xff0c;我将为你提供一个更加详细的框架&#xff0c;并解…

Xstate inspect状态图的使用 和 原理

状态图的好处之一是&#xff0c;在将状态图组合在一起的过程中&#xff0c;您可以探索流程中所有可能的状态。这种探索将帮助您避免代码中的错误和错误&#xff0c;因为您更有可能涵盖所有可能发生的情况。 因为状态图是可执行的&#xff0c;所以它们既可以表现为图&#xff0…

【YashanDB知识库】update/delete未选中行时,v$transaction视图没有事务,alter超时问题

问题现象 1、alter table修改表字段名&#xff0c;卡住&#xff0c;超时。 2、查看v$transaction事务视图&#xff0c;没有看到事务记录。 3、问题单&#xff1a;调整表结构时超时 问题风险及影响 无风险 问题影响版本 客户版本&#xff1a;22.2.8.3 问题发生原因 del…

2.1.卷积层

卷积 ​ 用MLP处理图片的问题&#xff1a;假设一张图片有12M像素&#xff0c;那么RGB图片就有36M元素&#xff0c;使用大小为100的单隐藏层&#xff0c;模型有3.6B元素&#xff0c;这个数量非常大。 识别模式的两个原则&#xff1a; 平移不变性&#xff08;translation inva…

MySQL学习(15):SQL优化:load、order by、group by

1.大批量插入数据指令load 当需要大批量插入数据时&#xff0c;insert的效率比较低&#xff0c;此时可以使用load命令 使用方法如下&#xff1a; &#xff08;1&#xff09;客户端连接服务端时&#xff0c;加上参数--local-infile mysql --local-infile -u root -p&#xf…

Java实现短信验证码服务

1.首先这里使用的是阿里云的短信服务。 package com.wzy.util;; import cn.hutool.captcha.generator.RandomGenerator; import com.aliyun.dysmsapi20170525.Client; import com.wzy.entity.Ali; import org.springframework.stereotype.Component;/*** Author: 顾安* Descri…

2024年铜川宜君半程马拉松,暴晒+爬坡152安全完赛

1、赛事背景 2024年7月21日&#xff0c;我参加了2024年铜川宜君半程马拉松赛&#xff0c;7月举办的赛事很少&#xff0c;全国都算温度比较高的&#xff0c;虽然宜君是一个山城&#xff0c;还是会担心气温会高。 临开赛1、2周&#xff0c;陕西区域降水比较多&#xff0c;赛前一…

C++从入门到起飞之——初始化列表类型转换static成员 全方位剖析!

&#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a;C从入门到起飞 &#x1f516;克心守己&#xff0c;律己则安 目录 1、初始化列表 2、 类型转换 3. static成员 4、完结散花 1、初始化列表 • 之前我们实现构造函数…

在Linux中,部署及优化Tomcat

tomcat概述 自 2017 年 11月编程语言排行榜 Java 占比 13%,高居榜首&#xff0c;Tomcat 也一度成为 Java开发人员的首选。其开源、占用系统资源少、跨平台等特性深受广大程序员喜爱。本章主要学习如何部署 Tomcat 服务&#xff0c;根据生产环境实现多个虚拟主机的配置&#xf…

在el-table单元格中通过div绘制圆、直线和对角线

<el-table-column label"电源屏零层端子" align"center" prop"name2" width"220px"><template #default"scope"><div class"bigCircle"></div><div class"smallCircle">…

EtherNet/IP转Profinet协议网关(经典配置案例)

怎么样才能把EtherNet/IP和Profinet网络连接起来呢?这几天有几个朋友问到了这个问题&#xff0c;作者在这里统一为大家详细说明一下。其实有一个设备可以很轻松地解决这个问题&#xff0c;名为JM-PN-EIP&#xff0c;下面是详细介绍。 一&#xff0c;设备主要功能 1、捷米特J…

eqmx上读取数据处理以后添加到数据库中

目录 定义一些静态变量 定时器事件的处理器 订阅数据的执行器 处理json格式数据和将处理好的数据添加到数据库中 要求和最终效果 总结一下 定义一些静态变量 // 在这里都定义成全局的 一般都定义成静态的private static MqttClient mqttClient; // mqtt客户端 private s…

科研绘图系列:R语言组合堆积图(stacked barplot with multiple groups)

介绍 通常堆积图的X轴表示样本,样本可能会存在较多的分组信息,通过组合堆积图和样本标签分组信息,我们可以得到一张能展示更多信息的可发表图形。 加载R包 knitr::opts_chunk$set(warning = F, message = F) library(tidyverse) library(cowplot) library(patchwork)导入…

R包:plot1cell单细胞可视化包

介绍 plot1cell是用于单细胞数据seurat数据对象的可视化包。 安装 ## You might need to install the dependencies below if they are not available in your R library. bioc.packages <- c("biomaRt","GenomeInfoDb","EnsDb.Hsapiens.v86&qu…