c基础 - 输入输出

news2024/11/19 2:43:30

目录

一.scanf() 和 printf() 函数

1.printf

2.scanf

二 . getchar() & putchar() 函数

1.int getchar(void) 

2.int putchar(int c)

三. gets() & puts() 函数


一.scanf() 和 printf() 函数

#include <stdio.h>

需要引入头文件,stdio.h

1.printf

printf函数是C语言中用于输出格式化字符串的标准库函数。它允许你按照指定的格式输出各种类型的数据。

下面是一些常用的格式化占位符及其含义:

  1. %d 或 %i - 用于输出十进制整数。
  2. %c - 用于输出单个字符。
  3. %s - 用于输出字符串(以空字符'\0'结束)。
  4. %f - 用于输出浮点数,默认保留小数点后六位。
  5. %e 或 %E - 用于科学记数法表示浮点数.
  6. %x - 用于输出无符号十六进制整数,小写字母表示a-f。
  7. %X - 同%x,但是使用大写字母A-F表示十六进制数。
  8. %p - 用于输出指针的地址值,通常以十六进制形式并前缀0x输出。
  9. %ld - 用于输出长整型(long int)的十进制数。
  10. %lu - 用于输出无符号长整型(unsigned long int)的十进制数。
  11. %lld - 用于输出长 long 整型(long long int)的十进制数。
  12. %llu - 用于输出无符号长 long 整型(unsigned long long int)的十进制数。
  13. %o - 用于输出无符号八进制整数。
  14. %h - 用于指定接下来的整数类型为short类型(
  15. %z - 用于输出size_t类型的大小,通常用于数组长度或字符串长度等。
  16. %n - 写入到一个整型参数中输出到现在为止的字符数量0

每个格式化占位符还可以加上一些选项来控制输出格式,比如:

  • 宽度%5d 表示输出至少5个字符宽的整数,不足部分前面补空格。
  • 精度%.2f 表示浮点数保留两位小数。
  • 左对齐%-5d 表示输出的整数左对齐,不足部分在右侧补空格。
  • 符号%+d 强制输出正负号,% d 对正数前加空格,%-d 对正数前加符号。
  • 进制基数%#x 以十六进制输出,并在前面加上0x

2.scanf

scanf函数是C语言中的标准输入函数,用于从标准输入(通常是键盘)读取数据并根据指定的格式解析。与printf类似,scanf也使用格式字符串来指定如何读取数据。下面是scanf中一些常用的格式说明符及其含义:

  1. %d 或 %i - 读取十进制整数。
  2. %c - 读取单个字符,不会跳过空白字符。
  3. %s - 读取字符串,遇空格、制表符、换行符等空白字符停止,或直到最大字符数读满
  4. %f - 读取浮点数。
  5. %lf - 用于读取double类型的浮点数。
  6. %u - 读取无符号整数。
  7. %x - 读取十六进制整数,字母abcdef可以是大写或小写。
  8. %p - 读取指针地址(通常用于调试,不常用)。
  9. %[] - 读取一组指定的字符集内的字符,例如%[0-9]读取数字。

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main()   
{
	
	int a;
	printf("请输入一个整数  \n");
	scanf("%d",&a);
	printf("第 %d  次   \n", a);

	return 0;

}

二 . getchar() & putchar() 函数

1.int getchar(void) 

getchar从屏幕读取下一个可用的字符,并把它返回为一个整数。

2.int putchar(int c)

putchar把字符输出到屏幕上,并返回相同的字符。

例子:

#include <stdio.h>



int main()   
{
	
	char c; 

	c = getchar();//接收一个字符

	putchar(c); //输出一个字符

	return 0;

}

三. gets() & puts() 函数

和上面的区别就是,

gets读取多个字符,以回车键结束

puts输出多个字符

代码

#include <stdio.h>



int main()   
{
	
	char c[100];

	gets_s(c);//接收一个字符

	puts(c); //输出一个字符

	return 0;

}

为什么用的gets_s.是因为gets函数存在一个重大的安全隐患:它没有长度检查机制.

gets函数在C语言中用于从标准输入读取一行文本,直到遇到换行符或文件结束为止。然而,gets函数存在一个重大的安全隐患:它没有长度检查机制,这意味着如果用户输入的字符串超过了缓冲区的大小,将会导致缓冲区溢出,这可能被恶意利用来执行任意代码,造成安全漏洞。

为了解决这个问题,C11标准引入了更安全的替代函数gets_s(在某些实现中可能是fgets更常见且推荐)。gets_s相比gets增加了对缓冲区大小的限制,这样可以防止缓冲区溢出的发生。

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

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

相关文章

【Linux】权限的概念

1.Linux权限的概念 Linux下有两种用户&#xff1a;超级用户&#xff08;root&#xff09;、普通用户。 超级用户&#xff1a;可以再linux系统下做任何事情&#xff0c;不受权限限制 普通用户&#xff1a;在linux下做有限的事情&#xff0c;受权限设置。 windows下也有超级用户…

ADC数模转换器

一、ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器 1、ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁 2、12位逐次逼近型ADC&#xff0c;1us转换时间 3、输入电压范围&#xff1a;0~3.3V&a…

掌握 JavaScript 基本输出方法

掌握 JavaScript 基本输出方法 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 JavaScript 是一种强大且灵活的编程语言&#xff0c;广泛用于 Web 开发。通过 JavaScript&#xff…

2.2 Docker安装redis

2.2 Docker安装redis 1.安装redis docker run --restartalways -p 6379:6379 --name myredis -d redis:7.0.12 --requirepass Hgh675667%–restartalways 开机自启动 -p 6379:6379 端口映射 –name myredis 容器名称 -d redis:7.0.12 redis版本 –requirepass Hgh675667% 密…

异常处理1--5.31

try--catch--finally格式&#xff1a; try{ }catch(错误类型){ }finally{ } 执行情况&#xff1a; package javatest5;public class test {public static void main(String[] args) {int num115;int num20;try{System.out.println("商等于&#xff1a;"num1/num…

JVM学习-类加载过程(二)

Initialization初始化阶段 为类的静态变量赋予正确的初始值 具体描述 类的初始化是类装载的最后一个阶段&#xff0c;如果前面的步骤没有问题&#xff0c;那么表示类可以顺利装载到系统中&#xff0c;此时&#xff0c;类才会开始执行Java字节码(即&#xff0c;到了初始化阶段…

龙芯3A4000+FPGA云终端解决方案,搭载昆仑国产化固件,支持UOS、银河麒麟等国产操作系统

龙芯云终端基于国产化龙芯高性能四核3A4000处理器平台的国产自主可控解决方案&#xff0c;搭载昆仑国产化固件,支持UOS、银河麒麟等国产操作系统&#xff0c;满足国产化信息安全运算的需求&#xff0c;实现从硬件、操作系统到应用的完全国产、自主、可控&#xff0c;是国产信息…

AI 赋能前端 -- 文本内容概要生成

幸福不在于你获得了什么,而在于你比他人多获得了什么 是比较出来的 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder 此篇文章所涉及到的技术有 OpenAILangChainRust/WebAssemblyWeb Workerreact+ts+vite配置环境变量(env)因为,行文字数所限,有些概…

常用电机测试方法的介绍与功能实现(M测试方法)

目录 概述 1 常用电机测速方法简介 1.1 方法概览 1.2 编码器测速方法 2 M法测速 2.1 理论描述 2.2 实现原理 2.3 速度计算方法 3 功能实现 3.1 功能介绍 3.2 代码实现 3.2.1 使用STM32Cube配置参数 3.2.2 脉冲计数功能 3.2.3 测速函数 4 测试 概述 本文主要介绍…

Mybatis-plus 更新或新增时设置某些字段值为空

方式一 在实体中设置某个字段为的注解中 TableField(updateStrategy FieldStrategy.IGNORED)private Date xxxxxxTime;通过这种方式会指定更新时该字段的策略&#xff0c;通常情况下updateById这种会根据字段更新&#xff0c;通常都会判断null 以及空值 指定 updateStrategy …

521源码网-免费网络教程-Cloudflare使用加速解析-优化大陆访问速度

Cloudfalre 加速解析是由 心有网络 向中国大陆用户提供的公共优化服务 接入服务节点: cf.13d7s.sit 接入使用方式类似于其它CDN的CNAME接入&#xff0c;可以为中国大陆用户访问Cloudflare网络节点大幅度加速&#xff0c;累计节点130 如何接入使用 Cloudflare 加速解析&#…

某咨询公司的大数据解决方案介绍(32页PPT)

方案介绍&#xff1a; 本咨询公司的大数据平台解决方案以企业实际需求为出发点&#xff0c;结合先进的大数据技术和行业经验&#xff0c;为企业提供一站式的大数据服务。通过实时数据收集与处理、深度数据分析与挖掘、可视化数据展示以及灵活的数据应用与扩展&#xff0c;帮助…

[.NET开发者的福音]一个方便易用的在线.NET代码编辑工具.NET Fiddle

前言 今天给大家分享一个方便易用的.NET在线代码编辑工具&#xff0c;能够帮助.NET开发人员快速完成代码编写、测试和分享的需求&#xff08;.NET开发者的福音&#xff09;&#xff1a;.NET Fiddle。 .NET Fiddle介绍 我们可以不用再担心环境与庞大的IDE安装的问题&#xff0…

frp之XTCP实现内网穿透家用电脑远程桌面公司电脑

官网XTCP介绍 《XTCP介绍》 实现图 fprs.toml # frps 服务端口&#xff08;不填&#xff0c;则默认&#xff1a;7000&#xff09; bindPort 81 auth.token "token 令牌"公司电脑frpc.toml serverAddr "frps公网服务器域名或ip" serverPort frps 服…

小程序配置自定义tabBar及异形tabBar配置操作

什么是tabBar&#xff1f; 小程序的tabbar是指小程序底部的一组固定导航按钮&#xff0c;通常包含2-5个按钮&#xff0c;用于快速切换小程序的不同页面。每个按钮都有一个图标和文本标签&#xff0c;点击按钮可以切换到对应的页面。tabbar通常放置在小程序的底部&#xff0c;以…

springboot基本使用十一(自定义全局异常处理器)

例如&#xff1a;我们都知道在java中被除数不能为0&#xff0c;为0就会报by zero错误 RestController public class TestController {GetMapping("/ex")public Integer ex(){int a 10 / 0;return a;}} 打印结果&#xff1a; 如何将这个异常进行处理&#xff1f; 创…

智慧医院物联网建设-统一管理物联网终端及应用

近年来&#xff0c;国家卫健委相继出台的政策和评估标准体系中&#xff0c;都涵盖了强化物联网建设的内容。物联网建设已成为智慧医院建设的核心议题之一。 作为医院高质量发展的关键驱动力&#xff0c;物联网的顶层设计与网络架构设计规划&#xff0c;既需要结合现代信息技术的…

NetApp财季报告亮点:全闪存阵列需求强劲,云计算收入增长放缓但AI领域前景乐观

在最新的财季报告中&#xff0c;NetApp的收入因全闪存阵列的强劲需求而显著增长。截至2024年4月26日的2024财年第四季度&#xff0c;NetApp的收入连续第三个季度上升&#xff0c;达到了16.7亿美元&#xff0c;较前一年同期增长6%&#xff0c;超出公司指导中值。净利润为2.91亿美…

从openstack环境中将服务器镜像导出的简单办法

1 登录openstack的页面&#xff0c;找到计划导出的主机信息。 通过实例名称&#xff0c; IP地址&#xff0c;找到对应的记录。点击实例名称&#xff0c;进入详情页。 在这里主要可以知道&#xff0c;当前主机在服务器上的文件ID&#xff0c;可以按这个ID去找对应的目录。 还可…

自定义对象池BasePooledObjectFactory的使用

项目中用到了apache的对象池来管理文件导出相关资源连接和回收功能&#xff0c;因此花点时间简单了解下对象池相关使用&#xff0c;做点记录。 一. 连接池 频繁的建立和关闭连接&#xff0c;会极大的降低系统的性能&#xff0c;而连接池会在初始化的时候会创建一定数量的连接…