首页 > 其他分享 >基本输入函数的应用

基本输入函数的应用

时间:2024-11-01 23:19:45浏览次数:5  
标签:字符 函数 换行 scanf 空格 应用 输入

前言:从本质上来说,C语言的全部功能都是通过各种函数实现的,故可认为C语言是典型的函数式语言。

输入函数

scanf函数:(运用该输入函数的时候不要忘记写取地址符号&)以回车键表示输入完毕

相必各位在刚开始学习输入函数的时候,输入东西时会这样写,就比如请输入两个整型数字,大家很可能会把着两种情况搞混淆:

代码运行时:

(一般情况)

输入多个数字时:需要用空格或者换行来间隔这多个数字(scanf函数会自动吞掉空格和换行的)

输入多个字符时:不需要,因为空格和换行本来就是字符。

scanf函数内部格式控制符之间,如果要用东西来间隔开多个格式控制符号,标准情况下只能用空格间隔开来,前提是如果你想输入数字时只用空格或Tab键或换行来间隔所输入的数字,如果你想不用任何东西来间隔所输入的字符。以下是输入东西时的一般情况。

情况1、当输入函数scanf运行时,两个输入数字或者字符没有用空格或换行或Tab键间隔开时

数字:

#include<stdio.h>
int main()
{
  int a,b;
  scanf("%d%d",&a,&b);
  printf("%d%d",a,b);
  return 0;

}

这时我们运行它。(以输入1和2两个数字为例)

如果我们输入数字的时候没有在这两个数之间加上空格或者换行(不管多少个都可以,只要有就行)我们以空格为例,那么就会输出这样。

fe896896c0184f1d8098fccdcae7c56d.png

为什么呢?

原因很简单,数字1和2之间如果没用空格隔开,那么系统会自动把1和2两个数字判定为一个数字12,这时你再按下换行键光标就会下移,因为它想找到第二个数字,直到你再输入第二个数字,再按下换行键,它才判定输入完成,才能正常运行起来。

而正常运行的时候是这样的:

或者说是这样:(以换行为例)​​​​

由两种输入方式及导致其输出结果的原因是:scanf函数运行时会吞掉换行符和空格符

字符:

​
#include<stdio.h>
int main()
{
	char a,b;
	scanf("%c%c",&a,&b);
	printf("%c%c",a,b);
    return 0;
}

​

这时我们运行它:(以输入j和k两个字符为例)

为什么会如此呢?

因为j和k系统会自动把它们认为是两个字符,所以就不需要在两个字符间加一个空格了,至于当程序运行时,在输入字符时,在字符间加空格对其输出的影响,下面就会讲到。

比如当给输入的两个字符加一个空格时:

因为scanf函数的格式控制字符间没有用空格(标准情况下)来占位,这时当scanf函数运行时,j会赋给a,而空格会赋给b,于是就输出这样的结果了。

情况2、

当输入函数scanf中两个输入数字或字符用空格间隔开时

数字:

#include<stdio.h>
int main()
{
  int a,b;
  scanf("%d %d",&a,&b);
  printf("%d%d",a,b);
  return 0;

}

(不要忘记在运行时,输入数据时,要用空格或者换行或者Tab键将数据间隔开来)事实上对于数据的输入,scanf函数内的格式控制字符是否被间隔开来对于数据的正常输出都没有太大的影响,只要记得scanf函数运行时,输入数据时要用空格或者换行或者Tab键将数据间隔开来就可以了

字符:

而对于字符的输出就有影响了

​
#include<stdio.h>
int main()
{
	char a,b;
	scanf("%c %c",&a,&b);
	printf("%c%c",a,b);
    return 0;
}

​

这时我们运行它:(以输入j和k两个字符为例)

输入字符时没有用空格间隔开,也不需要。

空格也是一个字符,如果当scanf函数运行时,你用空格或Tab键或换行来间隔 所输入的两个字符,(以空格为例)你会得到这样的输出结果:

为什么呢?

因为scanf函数的格式控制字符间有空格占着,这是就不怕会有将空格或换行或Tab赋值给字符变量的情况了。

(二般情况)

一般情况下,对于“%d%d”的数据输入,中间不能用“,”或“;”等方式分割,二般情况下,你可以在scanf函数内将格式控制字符串变为“%d,%d”或“%d;%d”的形式,此时我们的正确输入形式为:

1,2

或者

1;2

好了,就讲到这里了,写这个实在太累了······

标签:字符,函数,换行,scanf,空格,应用,输入
From: https://blog.csdn.net/2401_87630688/article/details/143420360

相关文章

  • OAuth2 原理与机制详解及应用案例
    一、OAuth2简介1.1什么是OAuth2?定义:OAuth2(OpenAuthorization)是一种用于安全授权的开放标准协议。作用:允许第三方应用安全地访问用户资源,而无需暴露用户的身份凭证。1.2OAuth2的基本概念ResourceOwner(资源拥有者):通常是用户。Client(客户端):需要访问用户资源的应用程......
  • 模拟实现字符串函数
    今天给大家分享几个字符串函数的模拟实现,它们分别是strlen,strcpy,strcat函数。这几个函数我上一期已经介绍过了,那么今天我就不过多介绍它们了,今天着重来看它们是如何实现的1.strlen函数我们先看代码这个函数的逻辑便是记录\0之前的字符,那么我们便可以通过计数器来实现,用一......
  • 字符串函数
    大家好,今天我们来了解几个字符串函数1.strcpy函数这个函数是一个字符串复制函数,其全称为stringcopy,它可以将一个源字符数组的内容复制到目标字符数组中,我们需要关注几个问题,首先源字符串必须以\0结束,拷贝时会将\0也一起拷贝过去,目标空间内存要足够大,目标空间必须可变,如果大家......
  • js中什么是闭包,它和柯里化函数有什么关系
    在JavaScript中,闭包是一个非常重要的概念,它指的是一个函数和它声明时所处的词法环境的组合。这意味着该函数可以访问并操作它被创建时作用域中的变量,即使它在那个作用域之外被调用。闭包的定义和特点访问外部变量:闭包允许一个函数访问它被创建时的作用域中的变量,即使这个......
  • 智能合约中的AI应用
    在智能合约中引入人工智能(AI)技术可以提升自动化、智能化和数据处理能力,从而在多个领域中带来创新应用。智能合约是指运行在区块链网络上的自动执行程序,可以通过预先设定的规则进行交易或事件触发。将AI与智能合约结合可以使合约具备更高的决策能力、自适应性和智能化,从而实现复......
  • 二十六、Python基础语法(函数进阶-下)
    一、多值参数多值参数(可变参数、不定长参数):有的函数不确定参数有几个,在一个普通的参数前面加上一个*,这个参数就变为不定参数。可以接收任意多个位置传参的数据,类型为元组。deftest(name,*args,sex='男'):print(name,args,sex)#传递3个参数test('张三',25,se......
  • 大语言模型:LLM如何应用到实际的业务中
    在上节介绍了LLM的基本实现原理:LLM通过接收一段提示词,将其拆解为Token(也可以理解为模型特定的分词)以嵌入(embedding)的方式作为输入,然后基于Transformer架构识别文本中的关键信息和上下文,进行文本预测生成。而,将LLM应用到实际的业务中更重要,因为只有使用才能创造价值。今天就......
  • 当下最好的Java做人工智能应用的开源框架-Spring AI alibaba介绍-含免费的菜鸟入门教
    在过去,Java缺乏一个统一且高效的AI应用框架,这导致开发者在使用不同AI提供商(如OpenAI、Azure或阿里云)时需要频繁地调整代码和接口适配。现在有了Spring团队推出的springAI,他能够很好的解决上面的问题,本文会先介绍一下springai这个应用框架的核心能力和功能。 然后再用s......
  • 真题练习37-Excel电子表格-全国计算机等级考试一级计算机基础及MS Office应用考试【汪
    第37组请根据题目要求,完成下列操作:打开考生文件夹下的电子表格,按照下列要求完成对此文稿的修饰并保存。1.在考生文件夹下打开EXCEL.XLSX文件:(1)将sheet1工作表的A1:G1单元格合并为一个单元格,内容水平居中;计算2015年和2016年产品销售总量分别置于B15和D15单元格内,分别计算2015......
  • java中对象池的在什么时候应用比较合适
    对象池是一种软件设计模式,其主要目的是重用对象,减少对象的频繁创建和销毁。在Java中,对象池在特定场景下表现出色,如数据库连接、线程池或重资源操作。本文深入探讨对象池的概念、优势和Java中的合适应用场景。1.对象池的基本介绍对象池是一种存储已初始化对象的容器,让这些对象......