数据类型与printf,scanf函数

2023-11-15

printf与scanf函数

printf函数是一个格式化输出函数

scanf()函数则是一个输入函数,
其一般的调用格式:scanf(格式控制,&地址列表);。其中格式控制一般是双引号中间加一些字符(由%与格式符组成),用于控制输入的格式,比如:%d,%c
%是格式控制符,它指明了以何种形式输出数据
&n表明对象n在内存中的地址

格式控制 数据类型
%d 用于输入十进制整数型
%o 用于输入八进制整数型
%x 用于输入十六进制整数型
%c 用于输入单个字符
%s 用于输入字符串
%f 用于输入实数型(包括浮点数)

有些关键字的格式控制不在表格中,在讲述数据类型时会有补充
两种函数都被声明在头文件stdio.h里,在使用时,要在程序中加入#include <stdio.h>
具体使用方法在数据类型中一并展示

基本数据类型

概念:一种在计算机语言中对内存位置的一的抽象表达方式。

以整数类型为例

int a    //定义整形变量 类型 变量名

三种赋值方式
1, 初始化:定义变量的同时赋值
2, 直接赋值:先定义一个变量,再赋值给这个变量
3,键入赋值:定义一个变量,在运行时通过键盘将获取的值存入变量

#include<iostream>      //使用cin,cout须调用iostream库
#include<stdio.h>       //调用stdio.h的库
using namespace std;
int main()
{                      //函数开始
int a=1;               //初始化 定义变量的同时给他赋值
int b;                 //定义变量
b=2;                   //直接赋值
int c;                 //定义变量
cin>>c;                //键入赋值 将键盘获取的值存入c中
cout<<a<<b<<c;         //输出变量
return 0;              //结束程序
}

分类
一, 整形类型
常用关键字:
int:4个字节,32位(整数类型默认是int类型,取值范围约21亿) 格式符 d
short:2个字节,16位,取值范围为【-32768,32767】 格式符%hd
byte:1个字节,8位,256种状态,取值范围【-128,127】 格式符
long:8个字节,64位 格式符%ld

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int a;
cin>>a;      
cout<<a<<endl;       //endl有换行作用
  int b;
  scanf("%d",&b);    //cin>>b
  printf("%d",b);     //cout<<b
return 0;
}

二,浮点数类型
关键字:
float(单精度):4的字节,32位,8位指数,23位有效尾数 格式符%f
double(双精度):8个字节,64位,11位指数,52位有效尾数 格式符%lf
注:double比float精度更高,也更为常用。
赋值方式与整形相同,两者区别在于整形只能只能用与整数,而浮点型可以应用于小数,即可以出现小数点

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
double a;
cin>>a;
cout<<a;
   double b;
   scanf("%lf",&b);      //cin>>b
   printf("%.2lf",b);    //cout<<b(%后加.再加保留的小数大小,这里保留两位小数)
return 0;
}

三,单一字符类型
关键字:char(用于存储单一字符,2个字节,16位) 格式符%c

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
char a;
cin>>a;
cout<<a<<endl;
   char b;
   scanf("%c",&b);    //cin>>b
   printf("%c",b);     //cout<<b
   return 0;
}

四,字符串类型
关键字:sting 格式符%s
注意:string并非是c的原生类型,无法像直接输入整数那样方便的使用scanf函数输入string变量,如果想直接使用,可以使用下面的方法。

#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
int main()
{
string a;
a.resize(2);             //预先分配空间,()内位预存的字符串大小
scanf("%s",&a[0]);       
cout<<a;
return 0;
}

五,布尔类型
关键字:bool(占1位)
只有false和true两个值,一边用于表示逻辑运算说明;以“//”开头为为注释行,“//”后的内容用以对语句进行说明,输入程序时可以不输入。

#include<iostream>
using namespace std;
int main()
{
bool a=-99;
cout<<a;
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据类型与printf,scanf函数 的相关文章

  • 是否有与 posix_memalign 对应的 C++ 版本?

    当我打电话时posix memalign http man7 org linux man pages man3 posix memalign 3 html为类型的对象分配对齐的内存Foo在我的 C 代码中 我需要做一个reinterpret
  • GetType() 在 Type 实例上返回什么?

    我在一些调试过程中遇到了这段代码 private bool HasBaseType Type type out Type baseType Type originalType type GetType baseType GetBaseTyp
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • JNI 将 Char* 2D 数组传递给 JAVA 代码

    我想从 C 代码通过 JNI 层传递以下指针数组 char result MAXTEST MAXRESPONSE 12 12 8 3 29 70 5 2 42 42 在java代码中我写了以下声明 public static native
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • 使用 GCP 的数据存储区时如何区分代码是在模拟器中运行还是在 GKE 中运行

    按照中给出的说明进行操作后 我不确定是否遗漏了任何内容https cloud google com datastore docs tools datastore emulator https cloud google com datasto
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个

随机推荐

  • 如何安装Jenkins并配置插件(清华源)

    Linux启动jenkins 将 jenkins war 放在 usr local jenkins 目录下 执行命令启动 Jenkins 1 nohup java jar jenkins war httpPort 8000 安装Jenkin
  • Gateway服务的搭建

    1 Gateway的作用 网关的核心功能特性 请求路由 权限控制 限流 架构图 权限控制 网关作为微服务入口 需要校验用户是是否有请求资格 如果没有则进行拦截 路由和负载均衡 一切请求都必须先经过gateway 但网关不处理业务 而是根据某
  • 微信公众号第三方平台开发,零基础入门。想学我教你啊

    在学习微信第三方平台开发之前你应该会的 1 常用接口测试工具的使用 postman 2 学会看第三方平台文档 这个很关键 不过很多还是喜欢百度 白嫖别人的操作文档 3 学习排查问题 分析问题 4 第三方平台的限制 和公众号 订阅号这些关系要
  • 前端node.js上传文件到服务器_从零开始: nodejs 搭建文件索引服务器(Part 1)

    在考虑要用nodejs搭建文件索引服务器来替代我原来那个笨重的Apache服务器 采用省心的bitnami lampstack搭建 然后配了背景图片和图标 之前 说实话我连javascript是什么都不清楚 所以 从语言上讲 确实是从零开始
  • 06-Redis缓存高可用集群

    上一篇 05 Redis高可用集群之水平扩展 1 集群方案比较 哨兵模式 在redis3 0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态 如果master节点异常 则会做主从切换 将某一台slave作为
  • JavaScript基础知识09——数据类型

    哈喽 大家好啊 这里是雷工笔记 我是雷工 数据类型比较常见 无论是对程序员 还是电气工程师来说 都再熟悉不过了 这里跟着教程了解一下 主要看跟自己以往在其他PLC C 组态软件中应用的有啥不同 一 了解数据类型 在计算机的世界就像黑客帝国中
  • 12306 APP 同一乘客、同列火车候补订单与硬座的处理规则!

    问题 国庆节没抢到回家的火车票 候补了该列车的卧铺 怕候补不到车票 又买了该列车的硬座 当候补订单候补到卧铺车票时 怎么处理 方案 结论 直接候补不成功 提示 XX 二代身份证 xxx 存在与本次购票行程冲突的车票
  • ctfshow- web1(50 point)

    0x00 前言 CTF 加解密合集 CTF Web合集 0x01 题目 0x02 Write Up 首先映入眼帘的是登录界面 尝试弱口令无果 可以注册 尝试注册一个账号 通过url发现这里是通过order by进行了排序 测试发现一共5个字
  • CSDN竞赛6期题解

    CSDN编程竞赛报名地址 https edu csdn net contest detail 16 请不要删掉此地址 总结 这次竞赛题目比较简单 没多大必要写题解 更多的还是给出自己的一些体会和建议吧 很多同学已经对比赛规则和编程体验给出了
  • 使用mod_deflate模块压缩页面优化传输速度

    在HTTPD主配置文件中添加如下 并确保deflate模块是启用的 vim etc httpd conf httpd conf SetOutputFilter DEFLATE 调用一个叫DEFLATE输出过滤器 mod deflate co
  • 信息与网络安全基础知识汇总

    一 概述 1 网络信息安全基本概念 信息安全 是指信息网络中的硬件 软件及其系统中的数据受到保护 不受偶然的或者恶意的原因而遭到破坏 更改 泄露 否认等 系统连续可靠正常的运行 信息服务不中断 密码学 是结合数学 计算机科学 电子与通信等学
  • Linux的find命令

    一 find语法 find path option print exec ok command find 路径 参数 二 使用 通过文件名查找 find name 文件名 find etc name passwd 查找 etc目录下的pas
  • easychat项目讲解

    项目简介 本项目是基于Websocket和Servlet实现的多用户聊天室 实现了聊天所需的一些基本功能 功能描述 1 用户信息注册 2 登录 同时标识上 下线用户 3 私聊 点击好友列表中指定用户进行私聊 4 群聊 点击好友列表指定用户建
  • 2023最新ELK搭建教程,基于ES 8

    一 ELK介绍 ELK的应用 ELK的应用场景 日志查询 问题排查 上线检查服务器监控 应用监控 错误报警Bug管理性能分析 用户行为分析 安全漏洞分析 企业 行业 ELK用途 阿里巴巴 电子商务 云计算 用于日志管理和实时监控 腾讯 互联
  • 蓝桥杯客观题知识点

    一 异步和同步的在于 有无统一的时钟信号 异步无 同步有 RS485 半双工 异步 串行 差分输入 多级通信 USB 键盘等外设 RS232 全双工 异步 串行 单端输入 一对一通信 二 组合逻辑电路和时序逻辑电路的区别 组合 任意时刻的输
  • 整数转换成罗马数字

    给定一个整数num 1 lt num lt 3999 将整数转换成罗马数字 如1 2 3 4 5对应的罗马数字分别位I II III IV V等 格式 第一行输入一个整数 接下来输出对应的罗马数字 输入 123 输出 CXXIII 我的解法
  • 如何让Object 变得有序

    如何让Object 变得有序 1 方法一 继承Comparable 实现CompareTo方法 CompareTo 只有一个参数 但它有四个限制条件 具体我也没有研究 可查看相关信息 如果该类实现这个方法它就具有比较规则定义 那么以后放在C
  • SpringBoot——配置文件的分类

    简单介绍 在之前我们写配置文件的时候 我们直接在项目中的resources下面编写的配置文件 其实除了在这个路径下编写配置文件 还可以在其他的地方编写配置文件 并且不同位置的配置文件在启动的时候的优先级也是不一样的 1 在resources
  • java list 默认排序_List集合排序(默认及自定义排序)

    一 java提供的默认list排序方法 主要代码 List list new ArrayList list add 王硕 list add 刘媛媛 list add 刘迪 list add 刘布 升序 Collections sort li
  • 数据类型与printf,scanf函数

    printf与scanf函数 printf函数是一个格式化输出函数 scanf 函数则是一个输入函数 其一般的调用格式 scanf 格式控制 地址列表 其中格式控制一般是双引号中间加一些字符 由 与格式符组成 用于控制输入的格式 比如 d