C中scanf()和gets()之间的区别(代码示例)


本文摘自PHP中文网,作者藏色散人,侵删。

scanf()函数

它用于从标准输入(键盘)读取输入(字符,字符串,数字数据)。

它用于读取输入,直到遇到空格,换行符或文件结束(EOF)。

例如,请参阅以下代码:

1

2

3

4

5

6

7

8

9

10

#include <stdio.h>

int main()

{

    char str[20];

    printf("enter something\n");

    scanf("%s", str);

    printf("you entered: %s\n", str);

   

    return 0;

}

这里的输入将由用户提供,输出如下:

1

2

3

4

5

输入: Geeks for Geeks

输出: Geeks

 

输入: Computer science

输出: Computer

gets()函数

它用于从标准输入(键盘)读取输入。它用于读取输入,直到遇到换行符或文件结束(EOF)。

1

2

3

4

5

6

7

8

9

#include <stdio.h>

int main()

{

    char str[20];

    printf("enter something\n");

    gets(str);

    printf("you entered : %s\n", str);

    return 0;

}

这里输入将由用户提供如下

1

2

3

4

5

输入: Geeks for Geeks

输出: Geeks for Geeks

 

输入: Computer science

输出: Computer science

它们之间的主要区别是:

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

差异可以表格形式显示如下:

SCANF()GETS()
当scanf()用于读取字符串输入时,它会在遇到空格,换行符或文件结束时停止读取当gets()用于读取输入时,它会在遇到换行符或End Of File时停止读取输入。
当它将空格视为字符串时,它不会停止读取遇到空格的输入。
它用于读取任何数据类型的输入它仅用于字符串输入。

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#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;

}

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

例子:

1

2

3

4

5

输入: Geeks for Geeks

输出: Geeks for Geeks

 

输入: Computer science

输出: Computer science

相关推荐:《C教程》

本篇文章就是关于C中scanf()和gets()之间的区别介绍,希望对需要的朋友有所帮助!

以上就是C中scanf()和gets()之间的区别(代码示例)的详细内容!

相关阅读 >>

c语言中double是什么意思?

c语言中&是什么意思?

c中的time()函数怎么用?

c/c++中如何使用extern关键字

c++ 判断本机是否有.net环境

c++如何读取excel

c ++中continue和break语句的简单比较

简单工厂factory

c语言中 return 的作用

c语言之后学什么?

更多相关阅读请进入《c》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...