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 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

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

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

相关文章

电池电量监测系统设计 单片机+LabVIEW+Matlab+Protues+Keil程序

目录 前言 提供 软件 系统展示 1.放电试验及其处理 2.硬件系统原理图 3.下位机程序 4.显示 5.上位机界面 6.上位机程序 7.文档 资料下载地址&#xff1a;电池电量监测系统设计 单片机LabVIEWMatlabProtuesKeil程序 前言 这套系统首先使用Matlab分析获得了电压…

KL散度的非负性证明

KL散度主要是用于衡量两个分布之间的差异。KL散度的公式如下&#xff1a; 其中&#xff0c;p&#xff0c;q分别是两个分布&#xff0c;且有&#xff1a; 证明KL散度的非负性&#xff0c;即证明&#xff1a; 即证明&#xff1a; 即证明&#xff1a; 由吉布斯不等式可知&#…

大模型(Large Models):探索人工智能领域的新边界

&#x1f31f;文章目录 &#x1f31f;大模型的定义与特点&#x1f31f;模型架构&#x1f31f;大模型的训练策略&#x1f31f;大模型的优化方法&#x1f31f;大模型的应用案例 随着人工智能技术的飞速发展&#xff0c;大模型&#xff08;Large Models&#xff09;成为了引领深度…

[C++]让C++的opencv库支持写出h264格式视频

当我们写下面测试代码时候&#xff1a; #include <opencv2/opencv.hpp>int main() {cv::VideoCapture cap("E:\\car.mp4"); // 打开默认摄像头if (!cap.isOpened()) {std::cout << "读取完毕!" << std::endl;return -1;}double fps ca…

Ja-netfilter(idea激活码破解原理)分析

Ja-netfilter&#xff08;idea破解&#xff09;分析 简介 ja-netfilter是一款可以破解jetbrainsIDE系列的javaagent jar 包。 原理简介 通过javaagent创造修改字节码的时机。通过asm修改相关类&#xff0c;达到hook特定方法的作用。主要依赖power&#xff08;rsa方法hook&a…

User nginx 写一个脚本,分析nginx的日志,自动将访问攻击路径的IP,放到nginx的黑名

要编写一个脚本分析 Nginx 日志并自动把特定路径访问者的 IP 地址加入黑名单&#xff0c;我们可以采用以下策略&#xff1a; 分析日志&#xff1a;定期分析 Nginx 日志文件以找到访问特定路径的 IP 地址。更新黑名单&#xff1a;将这些 IP 地址添加到 Nginx 的黑名单配置中。重…

在 Google Cloud 上轻松部署开放大语言模型

今天&#xff0c;“在 Google Cloud 上部署”功能正式上线&#xff01; 这是 Hugging Face Hub 上的一个新功能&#xff0c;让开发者可以轻松地将数千个基础模型使用 Vertex AI 或 Google Kubernetes Engine (GKE) 部署到 Google Cloud。 Model Garden (模型库) 是 Google Clou…

【LeetCode刷题记录】238. 除自身以外数组的乘积

238 除自身以外数组的乘积 给你一个整数数组 nums&#xff0c;返回数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据保证数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位整数范围内。 请不要使用除法&#xff0c…

[Linux基础]ln硬链接和ln -s软链接的方法参数及区别

区别&#xff1a; 1、ln创建硬链接&#xff1b;ln -s 创建软链接 2、硬链接的两个文件指向同一个inode&#xff08;inode&#xff1a;存放着文件的目录、权限、block块编号等信息&#xff09;&#xff1b;软链接的目标文件指向源文件&#xff0c;目标文件内存储的是源文件的目…

2024认证杯数学建模C题思路模型代码

目录 2024认证杯数学建模C题思路模型代码&#xff1a;4.11开赛后第一时间更新&#xff0c;获取见文末名片 以下为2023年认证杯C题&#xff1a; 2024年认证杯数学建模C题思路模型代码见此 2024认证杯数学建模C题思路模型代码&#xff1a;4.11开赛后第一时间更新&#xff0c;获…

JavaScript进阶6之函数式编程与ES6ESNext规范

函数式编程 柯里化currycurrycompose示例&#xff1a;简化版展开写&#xff1a; debug示例一&#xff1a;示例二&#xff1a; 模板字符串css in js方案 箭头函数问题 生成器 generator应用场景 反射 Reflect 柯里化curry compose是curry的应用 在 lodash/fp underscore ramba …

53.网络游戏逆向分析与漏洞攻防-基础数据分析筛选-逆向分析寻找消息数据解压缩过程

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 现在的代码都是依据数据包来写的&#xff0c;如果看不懂代码&#xff0c;就说明没看懂数据包…

Spring Boot 整合 Apache Phoenix 进行 HBase 数据操作指南

在Spring Boot中集成Apache Phoenix以便执行SQL查询和表操作&#xff0c;你可以使用Phoenix的JDBC驱动。下面是一个简单的示例&#xff0c;展示了如何在Spring Boot应用中集成Phoenix&#xff0c;并执行基本的表操作和查询。 1. 添加依赖 首先&#xff0c;你需要在你的pom.xm…

C# Solidworks二次开发:访问BOM表特性相关API详解

大家好&#xff0c;今天要讲的文章是和BOM表特性相关的API。 下面为要介绍的API&#xff1a; &#xff08;1&#xff09;第一个为GetConfigurationCount&#xff0c;这个API的含义为获取此BOM表可用或在此BOM表中使用的配置数&#xff0c;下面是官方的具体解释&#xff1a; …

phpMyadmin 设置显示完整内容

额外选项这里&#xff0c;默认部分内容改成完整内容 方案&#xff1a; 版本>4.5.4.1&#xff0c;修改文件&#xff1a;config.inc.php&#xff0c;添加一行代码&#xff1a; if ( !isset($_REQUEST[pftext])) $_REQUEST[pftext] F;

什么是已检查异常和未检查异常?

在Java中&#xff0c;已检查异常&#xff08;Checked Exceptions&#xff09;和未检查异常&#xff08;Unchecked Exceptions&#xff09;是两种主要的异常类型。 已检查异常&#xff08;Checked Exceptions&#xff09;&#xff1a;这种类型的异常在编译期就会被检查&#xf…

浮点数的表示

王道考研ppt总结&#xff1a; 二、个人理解 浮点数解决的是定点数的位数局限&#xff0c;导致表示范围有限的问题 阶码&#xff1a;由阶符和数值部分组成&#xff0c;阶符为&#xff0c;小数点向左移动&#xff0c;否则向右移动&#xff1b;数值部分&#xff0c;是底数的几次幂…

【算法】标签算法及其运作流程

标签算法 1. 标签算法及其运作流程2. 标签算法主要有哪些&#xff1f;3.用python语言举例实现聚类 1. 标签算法及其运作流程 标签算法是一种用于自动为数据或文本内容添加标签或分类的算法。这些标签可以帮助组织、检索和理解数据&#xff0c;是信息管理和数据挖掘中的重要工具…

区块链媒体推广的8个成功案例解析-华媒舍

区块链领域作为一个新兴行业&#xff0c;媒体推广对于项目的成功发展起着至关重要的作用。本文将从八个成功案例中来分析区块链媒体推广的重要性和成功策略。 1. 媒体报道对于区块链项目的重要影响 媒体报道是提升区块链项目知名度和用户认可度的重要手段。对于区块链项目来说…

Java | Leetcode Java题解之第25题K个一组翻转链表

题目&#xff1a; 题解&#xff1a; class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode hair new ListNode(0);hair.next head;ListNode pre hair;while (head ! null) {ListNode tail pre;// 查看剩余部分长度是否大于等于 kfor (int i 0…