Menu Close

scanf( ) 函数

1.变量名,变量值和变量地址

我们声明一个变量,编译器就分配给一个地址。变量名,变量值和变量地址的关系如下图所示:

变量值,变量名和变量地址
变量值,变量名和变量地址

 

2. scanf ()从键盘输入数据储存于变量地址

我们从键盘输入的都是文本,因为键盘只能生成文本字符:字符,数字和标点符号。如果要输入整数 2014,就要键入2,0,1,4.

如果要将其存储为数值而不是字符串,程序就必须要把字符依次转换成数值,这就是 scanf( ) 要做的。

scanf() 把输入的字符串转换成整数,浮点数,字符和字符串,而 printf( ) 正好与之相反,把整数,浮点数,字符,字符串转换成显示在屏幕上的文本。

scanf() 与 printf() 类似,也要使用 格式字符串 和 参数列表。scanf() 中的格式字符串表明字符输入流的目标数据类型。

两个函数的主要区别在于参数列表中。printf() 函数使用变量,常量和表达式,而 scanf( ) 函数使用指向变量的指针​。

语法:

scanf("format string", argument_list);

这里不需要了解指针,只需要记住一下简单的两条:

用 scanf 读取

  • 基本变量类型的值,在变量名前加上一个 &
  • 把字符串读入数组中,不要使用 &

下面的程序演示了这两条规则:

例1. 输入三个整数并输出

#include <stdio.h>


int main()
{
   int check;
   int a, b;
   //
   printf("Please input three number, separate them using space button:\n");
  // Input two variables
  scanf("%d%d%n", &a, &b, &check);
  // Print value of a, b, and check
  printf("%d\n%d\n%d", a, b, check);
  return 0;
}

结果

Please input three number, separate them using space button:
10 20 5
10
20
5

例2. 程序打印出输入数字的立方体

#include<stdio.h>
int main(){
   int number;
   printf("enter a number:");
   scanf("%d", &number);
   printf("cube of number is:%d ", number*number*number);
   return 0;
}

结果

enter a number:9
cube of number is:729

例3 用C语言输入和输出的简单示例,该示例显示两个数字的加法运算

#include<stdio.h>
int main(){
   int x=0, y=0, result=0;

   printf("enter first number:");
   scanf("%d", &x);
   printf("enter second number:");
   scanf("%d", &y);

   result=x+y;
   printf("sum of 2 numbers:%d ", result);

   return 0;
}

结果

enter first number:5
enter second number:6
sum of 2 numbers:11

初学者在使用 scanf 时,在应该写 & 的时候容易忽略 & ,所以每次使用 scanf 的时候一定要格外小心。通常情况下,必要的地方缺少 & 会让程序崩溃(编译器没有警告),但是也有时候程序并不会崩溃,这时候找 bug 可能会让你头痛。

READ  为什么整数以补码形式存入计算机?
除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复

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

Leave the field below empty!

Posted in C语言教程

Related Posts