c语言中scanf的基本用法

 更新时间:2021年01月12日 10:41:25   作者:weixin_43664986  
这篇文章主要给大家介绍了关于c语言中scanf的基本用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

scanf()是C语言的格式输入函数,和printf函数一样被声明在stdio.h头文件中,它的基本使用很简单:

1 int a;
2 scanf("%d",&a);//程序执行到这里时,就等待用户输入;它接收的是变量的地址
          //所以一般情况下除了指针型变量和数组名要给变量加上取地址符&

下面主要介绍了C语言中scanf的用法和注意事项,下面来一起看看详细的介绍吧

scanf概念

scanf是格式输入函数,功能是在屏幕上输入指定的信息。简单的来说和printf相似却不相同。

scanf调用格式: scanf("<格式化字符串>",<地址表>);

如:

#include <stdio.h>
int main()
{
int a,b,c;
printf(“input three data:\n”);//使用 scanf 之前先用 printf 提示输入。
scanf("%d%d%d",&a,&b,&c); // scanf 的“输入参数”中,前面的取地址符&记住
printf("%d,%d,%d/n",a,b,c);
return 0;
}

运行时按如下方式输入三个值:

3□4□5↙(输入a,b,c的值)

3,4,5 (printf输出的a,b,c的值)

(1) &a、&b、&c中的&是地址运算符,分别获得这三个变量的内存地址。

(2) "%d%d%d"是按十进值格式输入三个数值。输入时,在两个数据之间可以用一个或多个空格、tab键、回车键分隔。

以下是合法输入方式:

① 3□□4□□□□5↙

② 3↙

4□5↙

③ 3(tab键)4↙

5↙

我们常用到的字符串有:

%c 读入一个字符。

%d 读入十进制整数。

%f 用来输出实数,以小数形式输出。

%lf 用来输出实数,以更长的小数形式输出。

分享下学习中明白的注意点:

1 当定义一个字符变量时,在键盘上输入一个scanf会吸收回车和空格字符,为了进行代码的可行性需在函数结束前加函数getchar()进行吸收。例如:

定义一个字符z,是scanf是从键盘上获取一个值。因为我们定义的是一个字符,所以将键盘上所有获得的字符赋值给z,而空格和回车也是字符,会影响字符赋值给z,所以要在末尾加个getchar()函数进行吸收。

没加getchar():

程序第二次进行运算时回车成了运算符了。

正确结果是:

2 scanf函数中的“格式控制”后面应当是变量地址,而不是变量名。例如,若a和b为int型变量,如果写成scanf("%f%f%f",a,b,c)是错误的。

scanf 的使用小结:

1 在 scanf 的“输入参数”中,变量前面的取地址符&不要忘记。

2 scanf 中双引号内,除了“输入控制符”外什么都不要写。

3 “输出控制符”和“输出参数”无论在“顺序上”还是在“个数上”一定要一一对应。

4 “输入控制符”的类型和变量所定义的类型一定要一致。对于从键盘输入的数据的类 型,数据是用户输入的,程序员是无法决定的,所以在写程序时要考虑容错处理。

5 使用 scanf 之前先用 printf 提示输入。

总结

到此这篇关于c语言中scanf的基本用法的文章就介绍到这了,更多相关c语言scanf用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++函数指针详解

    C++函数指针详解

    这篇文章主要介绍了C++函数指针详解,通过文字描述C++函数指针基础概念,内涵详细的代码实现和解析,希望对你能够有所帮助
    2021-06-06
  • Matlab实现将图像序列合并为视频的方法详解

    Matlab实现将图像序列合并为视频的方法详解

    MATLAB是一种高性能语言,用于操纵矩阵、执行技术计算、绘图等。它代表矩阵实验室。借助这个软件,我们可以从图像中创建视频。这篇文章主要介绍了Matlab实现将图像序列合并为视频的四个方法,希望对大家有所帮助
    2023-03-03
  • 采用C++实现区间图着色问题(贪心算法)实例详解

    采用C++实现区间图着色问题(贪心算法)实例详解

    这篇文章主要介绍了采用C++实现区间图着色问题(贪心算法),很经典的算法问题,需要的朋友可以参考下
    2014-07-07
  • c语言中十进制转二进制显示小工具的实现代码

    c语言中十进制转二进制显示小工具的实现代码

    本篇文章是对c语言中十进制转二进制显示小工具的实现代码进行了详细的分析的介绍,需要的朋友参考下
    2013-05-05
  • 利用C语言编写一个无限循环语句

    利用C语言编写一个无限循环语句

    这篇文章主要介绍了利用C语言编写一个无限循环语句问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 解析C++中std::ref的使用

    解析C++中std::ref的使用

    这篇文章主要介绍了解析C++中std::ref的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • C++中的三种继承public,protected,private详细解析

    C++中的三种继承public,protected,private详细解析

    我们已经知道,在基类以private方式被继承时,其public和protected成员在子类中变为private成员。然而某些情况下,需要在子类中将一个或多个继承的成员恢复其在基类中的访问权限
    2013-09-09
  • C++ 组合 (Composition)的介绍与实例

    C++ 组合 (Composition)的介绍与实例

    这篇文章主要给大家介绍了关于C++ 组合(Composition)的相关资料,组合就是将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。需要的朋友可以参考下
    2021-05-05
  • 解析C++编程中的#include和条件编译

    解析C++编程中的#include和条件编译

    这篇文章主要介绍了解析C++编程中的#include和条件编译,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • 数据结构之链式二叉树详解

    数据结构之链式二叉树详解

    所谓二叉树遍历 (Traversal) 是按照某种特定的规则,依次对二叉树中的节点进行相应的操作,并且每个节点只操作一次。本文通过代码示例详细介绍了C语言中的链式二叉树,需要的朋友可以参考一下
    2023-04-04

最新评论