首页 > 其他分享 >scanf函数

scanf函数

时间:2024-08-22 12:27:11浏览次数:9  
标签:函数 scanf 用户 score 输入 变量

当我们有了变量,我们需要给变量输入值就可以使用scanf函数。

eg:

1 #include <stdio.h>

2 int main()

3 {

4 int score=0;

5 printf("请输入成绩:");

6 scanf("%d\n",score);

7 printf("成绩是:%d\n",score);

8 return 0;

9 }

接下来我们介绍一下scanf函数。

1.基本用法

scanf()函数用于读取用户的键盘输入

程序运行到这个语句时会停下来,等待用户从键盘输入。

用户输入数据,按下回车后,scanf()函数就会处理用户的输入,将其存入变量。

它的原型定义在头文件stdio.h。

scanf()的语法跟pringtf()类似。

1.scanf("%d\n",&i);

它的第一个参数是格式字符串,;里面会放置占位符(与printf()格式相同),告诉编译器如何解读用户的输入,需要提取的数据是什么类型。

这是因为C语言的数据都是有类型的,scanf()函数必须提前知道用户输入的数据类型,才能处理数据。

它的其余参数就是存放用户输入的变量,格式字符串里面有多少个占位符,就有多少变量。

上面示例中,&i表示,将用户输入的整数存入变量i。

注意:

变量前面必须加上&运算符(指针变量(%p)除外),因为scanf(0传递的不是值,而是地址,即将变量i的地址指向用户输入的值。

如果这里的变量是指针变量(比如字符串变量),那就不用加&运算符。

下面是一次将键盘输入读入多个变量的例子:

1 scanf("%d%d%f%f",&i,&j,&x,%y);

上面实例中,scanf()处理数值占位符时,会自动过滤空白字符,包括空格,制表符,换行符等。

所以,用户输入的数据之间,有一个或多个空格不影响scanf解读数据。另外用户使用回车键,将输入分成几行,也不影响解读,

1 1 

2 -20

3 3.4 

4 -4.0e3

上面示例中,用户分成四行和一行输入的结果是一样的。

标签:函数,scanf,用户,score,输入,变量
From: https://blog.csdn.net/wangjing_0522/article/details/141287770

相关文章

  • scanf函数(4)
    3.赋值忽略符有时,用户的输入可能不符合预定的格式。1#include<stdio.h>2intmain()3{4intyear=0;5intmonth=0;6intday=0;7scanf("%d-%-d%-d",&year,&month,&day);8printf("%d%d%d\n",year,month,day);9return0;10}上面示例中,如果用户......
  • scanf函数(2)
    1.scanf函数的基本用法scanf函数处理用户输入的原理是,用户的输入先放入缓存,等到按下回车键后按照占位符对缓存进行解读。解读用户输入时,会从上次解读遗留的第一个字符开始,直到读完缓存,或遇到第一个不符合条件的字符为止。1#include<stdio.h>2intmain()3{4intx;5......
  • 关于C++函数返回值的拷贝优化问题
    在传统C++程序中,如果函数的返回值是一个对象的话,可能需要对函数中的局部对象进行拷贝。如果该对象很大的话,则程序的效率会降低。在C++11以后,出现的移动语义(MoveSemantic)及拷贝优化(CopyElision)都是解决这个问题的方法。本文试图以一个最简单的例子来说明这个问题。案例下面来看......
  • 043、Vue3+TypeScript基础,pinia库使用action,在函数中对存储数据进行修改
    01、main.js代码如下://引入createApp用于创建Vue实例import{createApp}from'vue'//引入App.vue根组件importAppfrom'./App.vue'//第一步:引入piniaimport{createPinia}from'pinia'constapp=createApp(App);//第二步:创建pinia实例constpinia=......
  • 进程(2) wait、exec函数族
    目录1. fork() 函数功能使用时注意事项2. exit() 函数功能使用时注意事项3. wait() 函数功能使用时注意事项总结wait()异常信号结束waitpidexec函数族execl()execlp()execvexecvpfork()、exit() 和 wait() 函数在进程管理中扮演着重要的角色,它们......
  • 字符函数和字符串函数(二)
    有任何不懂的问题可以评论区留言,能力范围内都会一一回答1.strcpychar*strcpy(char*destination,constchar*source);这个函数的功能是复制字符串将source指向的C字符串复制到指向destination的数组中,包括终止\0 字符(并在该点处停止)。为避免溢出,destination......
  • DDD的函数式编程实现
    DDD是一种成熟的软件设计方法,旨在确保领域专家和开发人员能够有效合作,创造出高质量的软件。本文介绍咋将FP(函数式编程)应用于DDD的实现,使其既优雅又简洁。C4模型中,软件架构图分为四个层次:“系统上下文”、“容器”、“组件”和“代码”。“组件”是构成容器的基本单位,也是本文描......
  • 六:《Python基础语法汇总》— 函数
    一:函数入门​函数:就是可以重复使用的具有一定功能的代码。除了一些Python内置的函数以外,函数也可以自己定义​自定义函数:通过def定义的函数自定义函数格式:def函数名(参数):函数要去实现的功能代码#调用函数函数名(参数)​命名函数名和参数名时要符合变......
  • Secure Coding in C and C ++ (四)局部静态构造函数 虚函数
    前言上一章节我们讲解了关于C++静态和指针与引用的部分我们先来回顾一下相关的内容:指针说白了就是地址,inta;int*ptr=&a这里的整形指针就是存放的整数变量的地址静态static有两种层面:第一种层面就是在其他的文件里,如果加入了static修饰那么被修饰的在link......
  • 「字符串」前缀函数|KMP匹配:规范化next数组 / LeetCode 28(C++)
    概述为什么大家总觉得KMP难?难的根本就不是这个算法本身。在互联网上你可以见到八十种KMP算法的next数组定义和模式串回滚策略,把一切都懂得特别混乱。很多时候初学者的难点根本不在于这个算法本身,而是它令人痛苦的百花齐放的定义。有的next数组从0下标开始,有的从1开始;有的表......