C语言 数据输入输出

本文 我们来说 数据的输入与输出 及数据的运算

在程序的运算工程中 往往需要输入一些数据 而程序的运算 所得到的运算结果又需要输出给用户
因此 数据的输入与输出 就显得非常重要
在C语言中 不提供专门的输入输出语句

所有的输入输出 都是通过对标准库的调用 来实现的
一般 我们用 printf 和 scanf 函数
这两个函数 并不是C语言提供的输入输出语句,他们只是C语言中定义的函数,C语言提供的函数以库的形式存放在系统中
因此 在使用C语言库函数时 需要使用预编译命令#include 将相关的头文件(“.h”) 包含到用户源文件中
在这里插入图片描述
我们提到 printf 就是格式化 输出函数
它的功能就是 按用户指定的格式 将指定的数据 输入显示屏中

参考代码如下

#include <stdio.h>
int main() {
	const char myString[] = "你好";

	printf("%s\n", myString);
	return 0;
}

这里 我们定义了一个常量 myString 值为字符串 内容 你好
然后 我们通过 printf 输出 指定符号 百分号S 意思是 以字符形式展示 还记得之前那个 百分号D吧 一个意识

运行结果如下
在这里插入图片描述
如果printf 内字符内容 如果没有特殊标识符 则 语句会将内部的内容输出在控制器上

#include <stdio.h>
int main() {

	printf("hello world\n");
	return 0;
}

在这里插入图片描述
格式转换说明符
在这里插入图片描述
在格式字符前可以添加修饰符说明,一般格式为
%[标志] [输出最小宽度[ [.精度】[长度] 格式字符
标志:标志字符为 (+、-、#、空格) 共4种
输出最小宽度:用十进制数来表示输出的最少位数。若实际位数多于定义的宽度,按实际位数输出,若实际位数少于定义的宽度则补以空格或0
精度:精度格式符以 . 开头,后跟十进制数。本项的意义是:如果输出数字,则表示小数的位数;如果输出字符串表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分
长度:长度格式符为h、l两种,hd表示按短整型量输出,ld表示按长整型量输出,f表示按浮点型双精度格式输出。

在这里插入图片描述
讲完输出函数 我们来说说 输入函数scanf

scanf 函数从标准输入(键盘)读取信息,按照格式描述把读入的信息转换为指定数据类型的数据,并把这些数据赋给指定的内存区域中。

基本格式如下 scanf(“%d”,&a);
意思是 百分号D 就是 让用户从键盘输入一个整数 然后赋值给系统的 a属性

格式控制字符串规定输入项中的变量以何种类型的数据格式被输入,形式是:
%[<修饰符>]<格式字符>

修饰符是可选的,修饰符如下:
字段宽度:按指定宽度输入数据。如:scanf(“%3d”,&a);输入123456,按宽度3输入一个整数123赋给变量a,其余部分被截去长度修正符1和h:可与d、0、x一起使用,l表示输入数据为长整型h表示输入数据为短整型。如果编译器支持_int64,用格式符%I64d
如果编译器支持long long,用格式符%lld
抑制字符 * 表示 作用是跳过相应的数据

例如 我们编写代码如下

#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>
int main() {
	int a;
	int b;
	int c;
	scanf("%d%d%d",&a, &b, &c);
	printf("%d %d %d\n",a,b,c);
	return 0;
}

我们运行 然后 输入 1 2 3

运行结果如下
在这里插入图片描述
如果 我们这样写

#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>
int main() {
	int a;
	int b;
	int c;
	scanf("%d%d%d",&a, &b, &c);
	printf("%d %*d %d\n",a,b,c);
	return 0;
}

然后 再运行 输入 1 2 3
在这里插入图片描述
简单说 a 的值 依旧是 1 b的值 是 3 c没有被赋值 因为第二次赋值被跳过了

使用scanf()函数应注意以下几点:
1 scanf()函数中没有精度控制。
2 scanf() 函数中要求给出变量的地址,如给出变量名则会出错。如scanf(“%d”,a)是非法的,应改为scanf(“%d”,&a)才正确。
3 在输入多个数值时,若格式控制串中没有非格式字符作为输入数据之间的间隔,则可用空格、制表符或回车作为分隔符。C编译在碰到空格、制表符、回车符或非法数据(如对"%d"输入"12A"时,A即为非法数据)时即认为数据输入结束
4 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

itop4412内核编译_编译自定义函数到内核

我的itop4412开发板是半路捡的&#xff0c;所以没办法加他们的售后群&#xff0c;遇到的问题只好一点点记录吧 内核驱动编译 在日常工作过程中&#xff0c;编写内核程序可能机会不多&#xff0c;但是将厂商提供的内核源码编译到固件中&#xff0c;这个技能还是必须掌握的。 i…

认识异常(1)

❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; hellohello~&#xff0c;大家好&#x1f495;&#x1f495;&#xff0c;这里是E绵绵呀✋✋ &#xff0c;如果觉得这篇文章还不错的话还请点赞❤️❤️收藏&#x1f49e; &#x1f49e; 关注&#x1f4a5;&a…

系统架构最佳实践 -- 一般优惠券平台系统架构设计

优惠券是商城的一种基础的营销工具&#xff0c;在目前c端用户对于电子优惠券已经非常熟悉的情况下&#xff0c;一般自营商城的营销活动系统&#xff0c;都是从优惠券开始搭建。 一、名词定义 基于个人理解&#xff0c;为方便表述&#xff0c;首先对可能产生歧义的名词进行如下…

十九.案例演示---天猫订单分析

目录 1.数据预处理 2.对订单状况进行分析 3.不同省份订单数详情 4.省份地图绘制 5.不同星期&#xff0c;订单分布 6.订单金额与订单数量 本次案例演示数据条数为:28010 import pandas as pd from pyecharts import options as optsdf_data pd.read_excel(../data/天猫订单…

【笔记】探索生成范式:大型语言模型在信息提取中的作用

探索生成范式&#xff1a;大型语言模型在信息提取中的作用 摘要介绍 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你的陪伴与支持 ~ &#x1f680; 欢迎一起踏上探险之旅&#xff0c;挖掘无限可能&#xff0c;共同成长&am…

五、书架开发--3.弹出框功能开发、离线缓存功能开发

实现弹出框真实业务逻辑 私密阅读tab业务逻辑 1、根据点击的tab不同&#xff0c;从而展示出不同的popup弹窗 每个tab中都有自己的index&#xff0c;点击的时候获取这个index&#xff0c;就可以知道当前点击的是哪个tab&#xff0c;然后用switch-case来根据不同的index展示不…

【GD32】MQ-6丙烷检测传感器

2.34 MQ-6丙烷检测传感器 MQ-6气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(Sno2)。当传感器所处环境中存在可燃气体时&#xff0c;传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为该气体浓度相对应的输出信号。M…

Windows下使用PanguVip实现浮动IP

在某些高可用场景下&#xff0c;我们往往需要使用浮动IP来进行实际访问的切换&#xff0c;比如为了保证Web应用的高可用&#xff0c;当主节点宕机后&#xff0c;我们将浮动IP切换到备节点&#xff0c;那么备节点就继续可以提供服务&#xff0c;在linux下我们可以使用keepalived…

scala---基础核心知识

一、什么是scala Scala 是一种多范式的编程语言&#xff0c;其设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台&#xff08;Java虚拟机&#xff09;&#xff0c;并兼容现有的Java程序。 二、为什么要学习scala 1、优雅 2、速度快 3、能融合到hado…

【SpringBoot】获取参数

获取参数 传递单个参数传递多个参数传递对象后端参数重命名传递数组传递 json 数据获取 URL 中参数上传文件获取 cookie 和 session获取cookie获取session 传递单个参数 RequestMapping("/user") RestController public class UserController {// 传递单个参数Reque…

【Delphi 爬虫库 1】GET和POST方法

文章目录 1.最简单的Get方法实现2.可自定义请求头、自定义Cookie的Get方法实现3.提取响应协议头4.实现Post请求完成单词翻译 爬虫的基本原理是根据需求获取信息并返回。就像当我们感到饥饿时&#xff0c;可以选择自己烹饪食物、外出就餐&#xff0c;或者订外卖一样。在编程中&a…

Linux之bpfjit(2)使用分析和mini-tcpdump实现

Linux之bpfjit(2)使用分析和mini-tcpdump实现 Author: Once Day Date: 2024年4月13日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可以参考专栏&#xff1a;…

纯纯python实现梯度下降、随机梯度下降

最近面试有要求手撕SGD&#xff0c;这里顺便就把梯度下降、随机梯度下降、批次梯度下降给写出来了 有几个注意点&#xff1a; 1.求梯度时注意label[i]和pred[i]不要搞反&#xff0c;否则会导致模型发散 2.如果跑了几千个epoch&#xff0c;还是没有收敛&#xff0c;可能是学习率…

Linux 秋招必知必会(三、线程、线程同步)

六、线程 38. 什么是线程 线程是参与系统调度的最小单位&#xff0c;它被包含在进程之中&#xff0c;是进程中的实际运行单位 一个进程中可以创建多个线程&#xff0c;多个线程实现并发运行&#xff0c;每个线程执行不同的任务 主线程&#xff1a;当一个程序启动时&#xff0…

【Qt 学习笔记】Qt控件概述

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt控件概述 文章编号&#xff1a;Qt 学习笔记 / 14 文章目录 Qt控件概…

排序之快速排序

代码 class Solution {public int[] sortArray(int[] nums) {merge(nums, 0, nums.length - 1);return nums;}private void merge(int[] nums, int l, int r){if(l > r) return;// 随机选取主元int i new Random().nextInt(r - l 1) l;int temp nums[i];nums[i] nums[…

探索ElasticSearch高级特性:从映射到智能搜索

欢迎关注我的公众号“知其然亦知其所以然”,获取更多技术干货! 大家好,我是小米!今天我们来聊聊阿里巴巴面试题中的一个高级话题:ElasticSearch(以下简称ES)的高级特性。ES作为一款强大的搜索引擎,在处理大规模数据和复杂查询时发挥着重要作用。而了解其高级特性,则是…

微服务-6 Gateway网关

一、网关搭建 此时浏览器访问 localhost:10010/user/list 后正常返回数据&#xff0c;说明网关已生效&#xff0c;其原理流程图如下&#xff1a; 二、网关过滤器 作用&#xff1a;处理一切进入网关的请求和微服务响应。 1. 网关过滤器的分类&#xff1a; a. 某个路由的过滤器 …

购物车实现

目录 1.购物车常见的实现方式 2.购物车数据结构介绍 3.实例分析 1.controller层 2.service层 1.购物车常见的实现方式 方式一&#xff1a;存储到数据库 性能存在瓶颈方式二&#xff1a;前端本地存储 localstorage在浏览器中存储 key/value 对&#xff0c;没有过期时间。s…

Linux中使用Alias技术实现虚拟网卡

背景 在《Linux中虚拟网络技术有哪些》一文中&#xff0c;我们介绍了多种创建虚拟网卡的方法。本文介绍使用Alias技术创建虚拟网卡。 分析 Alias技术 在计算机领域中&#xff0c;Alias技术指的是给一个实体&#xff08;如文件、命令、网络接口等&#xff09;起一个别名或替代…