C语言scanf()和gets()的区别

scanf()

  • 它用于从标准输入(键盘)读取输入(字符、字符串、数字数据)。
  • 它用于读取输入,直到遇到空格、换行符或文件结尾(EOF)。

看下面的示例代码:

// C program to see how scanf() // stops reading input after whitespaces  #include <stdio.h> int main() {     char str[20];     printf("enter something/n");     scanf("%s", str);     printf("you entered: %s/n", str);      return 0; } 

运行结果:

Input: Yiibai Output: Yiibai  Input: Computer science Output: Computer 

gets

  • 用于从标准输入(键盘)读取输入。
  • 用于读取输入,直到遇到换行符或文件结尾(EOF)。
// C program to show how gets() // takes whitespace as a string.  #include <stdio.h> int main() {     char str[20];     printf("enter something/n");     gets(str);     printf("you entered : %s/n", str);     return 0; } 

运行结果如下:

Input: Yiibai tutorials Output: Yiibai tutorials  Input: Computer science Output: Computer science 

它们之间的主要区别是:

  • scanf()读取输入直到遇到空格、换行符或文件结尾(EOF),而gets() 读取输入直到遇到换行符或文件结尾(EOF),gets()在遇到空格时不会停止读取输入而是它 将空格作为字符串。
  • scanf()可以读取不同数据类型的多个值,而 gets() 只会获取字符串数据。

C语言scanf()和gets()的区别如下表所示:

scanf() gets()
scanf() 用于读取字符串输入时,它会在遇到空格、换行符或文件结尾时停止读取 get() 用于读取输入时,它会在遇到换行符或文件结尾时停止读取输入。它不会在遇到空格时停止读取输入,因为它将空格视为字符串。
它用于读取任何数据类型的输入。 它仅用于字符串输入。

如何使用 scanf() 读取用户的完整句子

实际上可以使用 scanf() 来读取整个字符串。 例如,可以在 scanf() 中使用 %[^/n]s 来读取整个字符串。

// C program to show how to read // entire string using scanf()  #include <stdio.h>  int main() {      char str[20];     printf("Enter something/n");      // Here /n indicates that take the input     // until newline is encountered     scanf("%[^/n]s", str);     printf("%s", str);     return 0; } 

上面的代码读取字符串,直到遇到换行符。

Input: Yiibai tutorials Output: Yiibai tutorials  Input: Computer science Output: Computer science 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264258.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论