我的C语言学习笔记(四)

3.2.0 scanf函数

scanf函数是一个输入函数,相当于printf是输出函数,scanf函数的作用是从控制台读取用户输入的数据信息。

3.2.1 scanf函数的格式

scanf(“格式控制符”,变量地址列表);

注意:

  • 格式控制符用占位符来要求用户输入指定类型的值
  • 变量地址列表为&变量名,例如&num

例子:scanf(“%d”,&num);

3.2.2 scanf函数的执行原理

scanf函数是一个阻塞式函数,只有在用户输入数据后计算机系统才会继续执行C语言的命令代码。

3.2.3 scanf函数使用的占位符

使用scanf函数接收输入其他类型的数据。

想要让用户输入什么类型的数据,是根据格式控制符中的占位符来决定的。

%d 用户输入int类型;

%f 用户输入float类型;

%lf 用户输入double类型;

%c 用户输入char类型。

例子:

int num = 0;

scanf(“%d”,&num);

3.2.4 scanf函数的作用和用法

  • 是在程序运行的时候,让用户输入数据,并将数据存储到变量之中;
  • 先声明1个变量,变量的类型要和用户输入的数据类型一致。

然后要将用户输入的数据存储到哪一个变量中,就把这个变量的地址写在后面,使用&就可以取到变量的地址。当执行完毕之后,用户输入的数据就会自动存储到这个变量之中。

3.2.5 scanf函数的注意事项

  • 如果用户输入的数据和要求的数据类型不一致,就会产生问题。
  • 如果不给变量进行初始赋值,则如果客户输入的数据不符合要求会造成问题。

使用scanf函数接收用户输入多个数据。

例子:

int num1 = 0, num2 = 0;
scanf(%d%d”,&num1,&num2);

在输入两个数据时,可以用空格或回车隔开。
连续输入的时候默认分隔符是空格或回车,但是也可以自定义分隔符。
例子:scanf(%d-%d-%d”,num1,num2,num3);

记住!一旦指定了分隔符以后,就不可以再用空格或回车来做分隔符了。

如果使用scanf函数一次输入多个数据,只能是int、float或double类型,不能一起输入char类型。

3.2.6 scanf函数的缓冲区

在执行scanf函数的时候,会让用户输入1个数据。在数据输入完毕之后,并不是将这个数据直接赋值给变量,而是先将数据存储在缓冲区。

在执行scanf函数的时候,会先检查缓冲区中是否有数据。如果缓冲区中没有数据,那么就会让用户从键盘输入。如果缓冲区中有数据,直接从缓冲区中将数据拿出来,不会让用户输入数据。

当从缓冲区中拿数据的时候,如果要拿的数据类型是整型或实型,拿到的是空格、回车、tab键就会被自动忽略,继续往下拿。

如果要拿的数据类型是字符型,则不会忽略任何数据(包括空格、回车、tab键等)。

将缓冲区清空的代码:rewind(stdin);

例子:

int num = 0;

printf(“Please insert a number:”);

scanf(“%d”,&num);

char ch = ‘a’;

printf(“Please insert a character:”);

rewind(stdin);

scanf(“%c”,&ch);

printf(“num = %d\n”,num);

printf(“ch = %c\n”,ch);

3.3.0 变量赋值的一个经典题目

3.3.1 交换两个变量的值

  • 声明第三方临时变量,来交换。

int num1 = 100;

int num2 = 200;

int temp = num1;

num1 = num2;

num2 = temp;

  • 两数相加再相减。

int a = 10, b = 20;

a = a + b;

b = a – b;

a = a – b;

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Optimized with PageSpeed Ninja