Linux C语言:输入输出(printf scanf)

一、数据输出

1、C语言I/O操作由函数实现

#include <stdio.h> 

2、字符输出函数 

格式: int putchar( int c )
参数: c为字符常量、变量或表达式
功能:把字符c输出到显示器上
返值:putchar函数的返回值是参数的ASCLL码值; 

#include <stdio.h>
main()
{ int c;
char a;
c=65; a='B';
putchar(c); putchar('\n'); putchar(a);
}

3、字符输入函数 

字符输入函数getchar
        格式: int getchar( void);
        功能:从键盘读一字符
        返值:正常,返回读取的字符的ASCLL码值;
出错或结束键盘输入,返回-1 (ctrl d) 

#include <stdio.h>
int main()
{ int c;
printf("Enter a character:");
c = getchar();
printf("%c--%d->hex%x\n", c, c, c);
}

4、字符输入输出函数结合使用

#include <stdio.h>
int main( )
{
int c;
printf( "Enter a value :");
c = getchar( );
printf( "\nYou entered: ");
putchar( c );
printf( "\n");
return 0;
}

 二、printf格式输出函数

1、格式

printf(“格式控制串”,输出表)

  • 功能:按指定格式向显示器输出数据
  • 输出表:要输出的数据
  • 格式控制串:包含两种信息

格式说明:%[修饰符]格式字符,用于指定输出格式
普通字符:原样输出 

2、格式字符 

int a=567; printf (“%d”,a);      //567
int a=255; printf(“%x”,a);       //ff
int a=65; printf(“%o”,a);        //101
int a=567; printf(“%u”,a);       //567
char a=65; printf(“%c”,a);       //Aprintf(“%s”,“ABC”); //ABC
float a=567.789;printf(“%e”,a);  //5.677890e+02
float a=567.789;printf(“%f”,a);  // 567.789000
float a=567.789;printf(“%g”,a);  // 567.789
printf(“%%”);                    //%

三、printf函数-附加格式说明符

 

1、printf函数-附加格式说明符m.n 

int a=1234;
float f=123.456;
char ch=‘a’;
printf(“%8d,%2d\n”, a, a);
printf(“%f, %8f, %8.1f, %.2f\n”, f, f, f, f);
printf(“%3c\n”, ch);
char a[]=“Hello,world!”
printf(“%s\n%15s\n%10.5s\n%.3s\n”, a, a, a, a, a);

2、printf函数-附加格式说明符0 +

#include <stdio.h>
int a=1234;
float f=123.456;
printf(“%08d\n”, a);
printf(“%010.2f\n”, f);
printf(“%0+8d\n”, a);
printf(“%0+10.2f\n”, f);

 四、scnaf格式输入函数

1、格式

scanf(“格式控制串”,地址表)

  • 功能:按指定格式从键盘读入数据,存入地址表指定存储单元中,并按回车键结束
  • 返值:正常,返回输入数据个数
  • 地址表:变量的地址,常用取地址运算符& 

目前,scanf支持的格式字符很多,如下, 

scanf函数支持的格式说明符可以带以下修饰符。 

2、格式输入函数-示例 

scanf(“%4d%2d%2d”, &yy, &mm, &dd);
若输入19991015
则yy为1999, mm为10, dd为15 

scanf(“%2d%*3d%2d”,&a,&b);
若输入12 345 67
则a为12,b为67

3、格式输入函数-输入字符

用“%c”格式符时,空格和转义字符作为有效字符输入
例子,
scanf(“%c%c%c”,&c1,&c2,&c3);
若输入a b c
则c1为a, c2为空格, c3为b 

ret=scanf(“%d%c%f”,&a,&b,&c);
若输入1234a123o.26
则a为1234, b为‘a’, c为123 

4、scanf函数的返回值 

 如何处理scanf()函数误输入造成程序出错

#include<stdio.h>
int main(void)
{
int a,b,c;
scanf("%d,%d",&a,&b);
c=a+b;/*计算a+b*/
printf("%d+%d=%d",a,b,c);
return 0;
}

五、如何处理输入函数留下的垃圾

1、输入函数留下的“垃圾” 

使用输入函数可能会留下垃圾 

int x;
char ch;
scanf(“%d”,&x);
scanf(“%c”,&ch);
printf(“x=%d,ch=%d\n”,x,ch);

 方法1:用getchar()清除

int x;
char ch;
scanf(“%d”,&x);
getchar();
ch=getchar();
printf(“x=%d, ch=%d\n”, x, ch);

方法2: 用格式串中空格或“%*c”来“吃掉”

int x;
char ch;
scanf(“%d”, &x);
scanf(“ %c”, &ch);或 scanf(“%*c%c”, &ch);

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

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

相关文章

1.奖牌的数量

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/447 题目描述 小爱获得了 𝑎a 枚金牌,…

领导者在沟通中最容易犯的错误

本文讨论了领导者在沟通过程中如何避免成为传声筒&#xff0c;通过筛选、处理和总结信息&#xff0c;在向上、向下沟通时保持相关性和真实性&#xff0c;提高沟通效率和效果。原文: The Dumbest Mistake Leaders Make in Communication 中层管理者作为高层领导、下属团队和其他…

Vue3中的常见组件通信之`$refs`、`$parent`

Vue3中的常见组件通信之$refs、$parent 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-mod…

Vue数据动态代理机制的实现

Object.defineProperty() &#xff08;1&#xff09;这个方法是ES5新增的 &#xff08;2&#xff09;这个方法的作用是&#xff1a;给对象新增属性&#xff0c;或者设置对象原有的属性 &#xff08;3&#xff09;用法&#xff1a;Object.defineProperty(给哪个对象新增属性,‘…

【虚拟现实】一、AR与VR的基本原理

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 增强现实&#xff08;AR&#xff09;和虚拟现实&#xff08;VR&#xff09;技术已经从科幻小说走入现实&#xf…

UR机器人通信汇总

文章目录 一、概述二、UR机器人通信2.1UR通信协议2.2 UR通信端口 三、UR机器人通信端口类型3.1 Modbus TCP端口&#xff08;502端口&#xff09;3.2 Dashboard端口&#xff08;29999端口&#xff09;3.3 上位机编程端口&#xff08;30001/30002/30003端口&#xff09;3.3.1 URS…

linux本地搭建dns

不需要图形化界面 使用的是dnsmasq&#xff0c;配置简单 1.安装 deb系列linux apt-get install dnsmasqrhat系列linux yum install dnsmasq2.编辑配置文件 vi /etc/dnsmasq.conf设置主dns服务器&#xff0c;比如现有公用的的114.114.114.114 8.8.8.8这类的 server8.8.8.8…

字节开源Hyper-SD模型,超越SDXL-Lightning,单步生成SOTA级图像

前言 近年来&#xff0c;扩散模型&#xff08;Diffusion Model&#xff0c;DM&#xff09;在图像生成领域取得了显著进展&#xff0c;展现出前所未有的图像质量和多样性。然而&#xff0c;扩散模型的训练和推理过程通常需要多个步骤&#xff0c;这限制了其在实际应用中的效率。…

注册小程序

每个小程序都需要在 app.js 中调用 App 方法注册小程序实例&#xff0c;绑定生命周期回调函数、错误监听和页面不存在监听函数等。 详细的参数含义和使用请参考 App 参考文档 。 整个小程序只有一个 App 实例&#xff0c;是全部页面共享的。开发者可以通过 getApp 方法获取到全…

172.二叉树:左叶子之和(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr, right(nullptr) {}* Tree…

RandomDate(接口参数化-随机生成日期)

目录 1、入口位置&#xff1a;2、验证函数生成值3、获取 年月日时分秒 的全随机4、时间函数 前言&#xff1a;有时候我们做性能测试或者接口测试时&#xff0c;参数需要传入日期格式&#xff0c;但是又不想每次都是用同一个日期&#xff0c;我们就可以使用Jmeter工具中函数助手…

2024050702-重学 Java 设计模式《实战状态模式》

重学 Java 设计模式&#xff1a;实战状态模式「模拟系统营销活动&#xff0c;状态流程审核发布上线场景」 一、前言 写好代码三个关键点 如果把写代码想象成家里的软装&#xff0c;你肯定会想到家里需要有一个非常不错格局最好是南北通透的&#xff0c;买回来的家具最好是品…

Mysql 中的case-when

什么是 case-when case-when 是一种 sql 语句中的语法结构,结构如下&#xff1a; case 字段名 when 值 then 字段名|值 ... else 字段名|值 end case when 主要用于数据的 行列转换&#xff08;把一列数据转换为多列&#xff09; 前置条件&#xff1a; -- 表…

02.体验CSS以及Bootstrap框架

目录 CSS固定格式 1&#xff09;style标签 2&#xff09;div标签 3&#xff09;span标签 CSS属性 一、文字属性 1.规范文字样式的属性 2.规定文字粗细的属性 3.规定文字大小的属性 4.规范文字字体的属性 二、文本属性 1.文本装饰属性 2.文本水平对齐属性 3.文本缩进…

[flutter]一键将YAPI生成的api.json文件转为需要的Dart Model类的脚本

目的&#xff1a; 根据YAPI接口平台生成的api.json接口文件&#xff0c;将接口数据转化为model类&#xff0c;生成对应的接口值类型文件。 发现&#xff1a; api.json文件导出&#xff1a; YAPi是一个接口管理平台&#xff0c;登录账号打开项目后&#xff0c;在点击数据管理…

Vuex3学习笔记

文章目录 1&#xff0c;入门案例辅助函数 2&#xff0c;mutations传参辅助函数 3&#xff0c;actions辅助函数 4&#xff0c;getters辅助函数 5&#xff0c;模块拆分6&#xff0c;访问子模块的state辅助函数 7&#xff0c;访问子模块的getters辅助函数 8&#xff0c;访问子模块…

Python魔法之旅-魔法方法(23)

目录 一、概述 1、定义 2、作用 二、应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类型检…

【Python】数据处理:OS目录文件操作

Python的os模块是一个用于与操作系统进行交互的标准库模块。它提供了丰富的功能来处理文件和目录、执行系统命令、获取和设置环境变量等。 工作目录操作 获取当前工作目录 os.getcwd()参数&#xff1a;无返回值&#xff1a;一个字符串&#xff0c;表示当前工作目录的路径。这…

什么,一不小心打造了一个基于大模型的操作系统

如果以大模型为Kernel, 形成一个新的操作系统&#xff0c;那么&#xff1a; 1. byzer-llm 是这个大模型操作系统的编程接口&#xff0c;有点类似Linux操作系统的C ABI。 2. byzer-retrieval 也被集成进 byzer- llm 接口里&#xff0c;算是大模型操作系统的文件系统&#xff0c…