关键区别——scanf vs gets
函数是执行特定任务的一组语句。不需要在同一个程序中编写所有语句,它可以被分成多个函数。在编程中,用户可以定义自己的函数。编程语言也提供了一些函数。C语言提供了许多函数,因此程序员可以直接使用它们而不必从一开始就实现它们。C语言提供的两个这样的函数是scanf和gets。本文讨论这两个函数之间的区别。scanf和gets之间的关键区别在于,scanf在遇到空白、换行或文件结束(EOF)时结束接收输入,而gets将空白视为输入字符串的一部分,并在遇到newline或EOF时结束输入。
目录
1. 概述和主要区别
2. 什么是scanf
3. 什么是得到
4. scanf和gets之间的相似性
5. 并排比较-scanf和gets以表格形式显示
6. 摘要
什么是扫描(scanf)?
scanf函数可以从键盘读取输入并根据给定的格式说明符存储它们。它读取输入,直到遇到空白、换行符或EOF。语法如下。
scanf(“格式字符串”,变量地址列表);
参考下面给出的例子来理解scanf。
根据上面的程序,从键盘得到的输入是一个整数,所以格式说明符是%d,如果是字符值,格式说明符是%c,如果是浮点值,格式说明符是%f,接收到的输入值应该存储在number变量中。因此,变量号的地址被传递到scanf函数中。现在,number变量包含用户从键盘上给定的值。最后,我们可以打印数字变量来检查值。
也可以一次接收多个值。
接收到的输入存储在变量number1和number2中。可以使用printf检查值。
什么是得到(gets)?
获取函数用于接收来自键盘的输入,直到遇到换行符或EOF。空白被视为输入的一部分。gets函数的语法如下。
gets(“存储字符串的位置”);
如果在接收字符串时出错,gets函数将返回空值。
参考下面的例子,
输入由gets函数接收并存储在变量word1中。如果程序员使用scanf而不是gets并输入一个字符串,比如“helloworld”,scanf会将字符串作为两个字符串来读取,因为空格是空白的。但是gets会把它读成一个字符串“hello world”。
扫描(scanf)和得到(gets)的共同点
- 它们都是C语言提供的函数。
- 两者都应该包含头文件stdio.h以使用这些函数。
- 两者都可以用于从标准输入获取输入。
扫描(scanf)和得到(gets)的区别
扫描vs gets | |
scanf是一个C函数,用于从标准输入读取输入,直到遇到空白、换行符或EOF。 | gets是一个C函数,用于从标准输入读取输入,直到遇到换行符或EOF。它将空白作为输入的一部分。 |
语法 | |
scanf函数接受格式字符串和变量地址列表。e、 g.scanf(“%d”,&number); | gets函数接受变量的名称来存储接收到的值。E、 g.gets(名称); |
灵活性 | |
scanf可以读取不同数据类型的多个值。 | gets()将只获取字符串数据。 |
总结 - 扫描(scanf) vs. 得到(gets)
scanf和gets是编程语言C提供的函数,用户不需要从一开始就实现这些函数。他们可以直接在程序中使用它们。scanf和gets的区别在于,scanf在遇到空白、换行或文件结束(EOF)时结束接收输入,gets将空白视为输入字符串的一部分,并在遇到newline或EOF时结束输入。使用scanf或gets取决于从标准输入(大多数情况下是键盘)接收用户输入的方式。scanf比gets更灵活。
下载scanf vs gets的pdf版本
你可以下载这篇文章的PDF版本,并按照引文说明离线使用。请在这里下载PDF版本scanf和gets的区别