黑马程序员——C语言基础---scanf函数

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1,scanf函数的概念

scanf函数也叫阻塞式函数,也就是说当函数执行后,会等待用户的输入,如果用户不输入任何内容,他会一直等待。如果使用这个函数,必须包含一个头文件 stdio.h。

2,scanf函数的作用

从键盘接受用户输入的内容,保存到指定的变量中。

3,scanf函数的格式

scanf("格式控制符",输入项的地址列表);

4,scanf函数的用法

输入一个整数

int  age;                    //定义一个整型age变量

scanf("%d" , &age);   //%d表示用户输入一个十进制的整数

//&是C语言中的一个地址运算符,表示用来获取变量age的地址

输入一个小数

float  score=0.0f;           //定义一个实型score变量

printf("请输入一个分数:/n"); //提示用户输入一个分数

scanf("%f",&score);          //接受用户输入的值保存到score中

5,scanf函数的注意事项

1>接受单个变量值的时候,在输入值之前,如果我们输入了空格,回车,tab的时候,都会被忽略

2>scanf函数当遇到回车的时候,会结束执行

3>%d%d要求我们在键盘上输入的时候,输入的两个整数,并且以空格或者回车隔开12 32

4>在scanf中,尽量不要使用/n,会导致函数无法结束,比如scanf(“%d\n”, &a); 这将导致scanf函数无法结束

6,scanf运行的原理

1>当用户输入内容后,用户输入的内容会被存放到scanf的输入缓冲区中,然后,scanf函数会根据格式控制的        字符的要求,从输入缓冲区依次取他想要的内容

如果 从缓冲区中取得内容和我们的格式要求一致,则把值存放到变量中

如果格式不一致,则不修改变量的值

2>如果scanf缓冲区中还有内容,则scanf不会提示我们再次输入内容

7,scanf函数的课程代码

 1 #include <stdio.h>
 2
 3 void test(){
 4
 5     //从键盘上接收一个人得年龄,然后打印出来
 6
 7     //获取变量的地址:用取地址符号 &
 8
 9     //1、定义变量
10     int age=-1;
11     //2、给一个提示,让用户输入一个年龄
12     printf("请输入年龄:\n");
13     //把用户输入的值,放到age变量中
14     //如果输入的是小数,此时age只保存整数部分
15     scanf("%d",&age);  //获取了age这个变量的地址
16     //3、打印用户输入的年龄
17     printf("您输入的年龄是:%d\n",age);  //
18
19 }
20
21 int main(int argc, const char * argv[]) {
22
23
24     //接收一个小数
25     float score=0.0f;
26     printf("请输入一个分数:\n");
27     //接收用户输入的值保存到score中
28     scanf("%f",&score);  //此处不允许写%m.nf,但是%mf是可以的
29     //打印score的值
30     printf("%3.2f\n",score);
31
32
33     return 0;
34 }
 1 #include <stdio.h>
 2 void test(){
 3
 4
 5     //scanf的注意事项
 6     //0、scanf函数当遇到回车的时候,会结束执行
 7     //1、接收单个变量值的时候,在输入值之前,如果我们输入了空格 回车 tab,都会被忽略
 8     int age=-1,num=-1;
 9     //%d%d,要求我们在键盘上输入的时候,输入两个整数,并且以空格或者回车隔开12 34
10     //输入完第一个数以后,如果中间添加了回车 空格 tab 都会被忽略
11     scanf("%d%d",&age,&num);
12
13     printf("age = %d,num = %d\n",age,num);
14
15     //12,34  age 12 num -1
16
17 }
18
19 void test2(){
20
21     int a=-1,b=-1;
22     char ch;
23     //接收键盘输入的值
24     //scanf("%d,%c,%d",&a,&ch,&b);
25     scanf("%d%c%d",&a,&ch,&b);
26     //打印变量的值
27     printf("%d,%c,%d\n",a,ch,b);  // 理想:12,a,45 实际:12, ,-1
28
29 }
30
31 void test3(){
32
33
34     //关于*号的使用
35     int a,b;
36     a = b = -1; //连续赋值
37     // %*d 跳过一个整数
38     scanf("%d%*d%d",&a,&b);
39
40     printf("%d,%d",a,b);
41
42 }
43
44 int main(int argc, const char * argv[]) {
45
46     int age=-1;
47     //关于scanf中,尽量不要使用 \n
48     //如果一不小心使用了,怎么破
49     // 1) 输入值后,随便输入一个内容
50     // 2) \n要原样输入
51
52     scanf("%d\n",&age);
53     printf("age = %d\n",age);
54
55     return 0;
56 }
 1 #include <stdio.h>
 2 void test(){
 3
 4
 5     //scanf的注意事项
 6     //0、scanf函数当遇到回车的时候,会结束执行
 7     //1、接收单个变量值的时候,在输入值之前,如果我们输入了空格 回车 tab,都会被忽略
 8     int age=-1,num=-1;
 9     //%d%d,要求我们在键盘上输入的时候,输入两个整数,并且以空格或者回车隔开12 34
10     //输入完第一个数以后,如果中间添加了回车 空格 tab 都会被忽略
11     scanf("%d%d",&age,&num);
12
13     printf("age = %d,num = %d\n",age,num);
14
15     //12,34  age 12 num -1
16
17 }
18
19 void test2(){
20
21     int a=-1,b=-1;
22     char ch;
23     //接收键盘输入的值
24     //scanf("%d,%c,%d",&a,&ch,&b);
25     scanf("%d%c%d",&a,&ch,&b);
26     //打印变量的值
27     printf("%d,%c,%d\n",a,ch,b);  // 理想:12,a,45 实际:12, ,-1
28
29 }
30
31 void test3(){
32
33
34     //关于*号的使用
35     int a,b;
36     a = b = -1; //连续赋值
37     // %*d 跳过一个整数
38     scanf("%d%*d%d",&a,&b);
39
40     printf("%d,%d",a,b);
41
42 }
43
44 int main(int argc, const char * argv[]) {
45
46     int age=-1;
47     //关于scanf中,尽量不要使用 \n
48     //如果一不小心使用了,怎么破
49     // 1) 输入值后,随便输入一个内容
50     // 2) \n要原样输入
51
52     scanf("%d\n",&age);
53     printf("age = %d\n",age);
54
55     return 0;
56 }
时间: 2024-08-08 01:26:12

黑马程序员——C语言基础---scanf函数的相关文章

黑马程序员——C语言的scanf函数

一. 变量的内存分析 1. 字节和地址 1> 内存以“字节为单位”,Oxffc1,Oxffc2,Oxffc3,Oxffc4....都是字节 ,0x表示的是十六进制 2> 不同类型占用的字节是不一样的,数据越大,所需的字节数就越多 2. 变量的存储 1> 所占用字节数跟类型有关,也跟编译器环境有关 2> 变量实例 #include <stdio.h> int main(){   //内存寻址由大到小 int a=10; int b=20;     printf("

黑马程序员-C语言基础:数组和字符串

数组:数组的定义注意点 数组初始化正确写法: int args[5] = {1,23,32,4,5}; int args[5] = {12,23}; int args[5] = {[3]=23, [4]=13};//这种写法也可以,直接给其中角标为3和4的赋值 int args[] = {12,23,32};//中括号中没写数组大小,在大括号中一定要写具体数值 int args['A'] = {2,34,5}; 错误写法: int args[];//这样编译器不知道给你开辟多大的内存空间 int

黑马程序员——c语言学习心得——函数传递二维数组

黑马程序员——c语言学习心得——函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化.   变量定义的时候给变量初始化,这是保证不出错的一个很好的习惯.尤其是在指针的使用上,如果我们没有给指针初始化,就会出现野指针,该指针的指向并不是我们所希望的,一旦错误的释放了这个指针,就会发生内存的访问.那么如何初始化指针变量呢,一般有以下几种方法:   1.初始化空指针   int* pInteger=N

黑马程序员-c语言基础:各种数据类型的输出占位符

c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d int a = 1; printf("这个整数是:%d", a); long: %ld; (long 是int得修饰,不能算是一种单独的数据类型,只是比int多了四个字节的存储空间) long long: %lld char : %c float/double : %f  float默认是6位小数输出:可以在%f中控制:例如:%.2f:输

黑马程序员-C语言基础:指针类型与指针和数组、字符串的关系

//指针变量就是用来存储地址的,只能存储地址 格式:  int  *p;  这个p为指针变量:指针变量占8个字节 类型是用来说明这个指针指向的类型: 比如上边的int代表这个指针变量会指向int类型的存储空间: int *p = &a;//这样一句可以写,此时的*只是一个标志,表示这个*只是表示p是个指针: *p = &a;//这样写就错了:此时*p表示取p指向的空间的值: 指针疑问:指针既然都占据8个字节,那么为什么要划分类型, 是因为当用*p指针取值或者赋值的时候,知道该取几个字节,比

黑马程序员_01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)

------- android培训.java培训.期待与您交流! ---------- Java语言主要由5中符号组成 标识符:数字.字母.美元符.下划线(注意不能数字开头) 关键字:goto和const保留了它们,但是Java没有使用. 运算符:注意运算符优先级(左结合和右结合要注意) 分隔符:注意+号可以分割字符串. 注释:三种注释. 数据类型与变量 常量: 整型 浮点型 字符:注意后面跟三个八进制(\ddd)和 四位unicode码(\u8bf7) (不区分大小写) 字符串 布尔型 变量:

黑马程序员--C语言基础之--scanf函数

------- IOS培训期待与您交流! ---------- 写代码的时候,我们可以看得出,几乎每一个C程序都会包括输入输出.输入输出是程序中最基本的操作之一.C语言本身并不提供输入输出的语句,输入输出操作是由C标准函数库中的函数来实现的.今天就先说说输入:scanf函数. scanf函数与printf函数一样,都不是C语言的关键字,而只是函数库的名字,它们被定义在stdio.h里,因此在使用scanf函数时要加 上#include<stdio.h>.它是格式输入函数,即按用户指定的格式从键

黑马程序员--C语言基础之--变量、内部函数与外部函数

------- IOS培训期待与您交流! ---------- 一.变量 变量代表着一个有名字的.具有特定属性的一个存储单元,运行期间,变量的值是可以改变的.变量必须先定义,后使用.定义时,指定该变量的名字与类型.变量名实际上是以一个名字代表的一个存储地址:而从变量中取值,实际上是通过变量名找到相对应的内存地址,再从该存储单元中读取相对应的数据. 刚刚提到了变量定义这个词,我们知道,在定义函数的时候,我们都会先对函数进行一个声明,这就又引用了一个概念:声明.那么我们先来理解一下什么是声明和定义:

黑马程序员--C语言基础之--printf函数

------- IOS培训期待与您交流! ---------- 上一篇介绍了C语言中scanf函数的用法,接下来让我们来进一步地认识了解一下printf函数. 一.printf函数的用法: 首先让我们来看一下其定义的格式: int printf(const char *format,[argument]) (一).一般格式 printf(格式控制,输出表列); 如: printf("i=%d,ch=%c/n",i,ch); 说明: (1)."格式控制"是用双撇号括起