c 语言中的gets 是什么意思,C中scanf()和gets()之间的区别是什么

本文详细介绍了C语言中scanf()和gets()函数的主要区别。scanf()在遇到空格、换行符或文件结束时停止读取,而gets()则在遇到换行符或文件结束时停止。此外,scanf()可以读取多种数据类型,但gets()仅适用于字符串。文章还提供了一个示例,说明如何使用scanf()的特殊格式化字符串`%[^ ]s`来读取整行字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C中scanf()和gets()之间的区别是什么

发布时间:2020-09-09 11:27:59

来源:亿速云

阅读:98

作者:小新

小编给大家分享一下C中scanf()和gets()之间的区别是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

scanf()函数

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

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

例如,请参阅以下代码:#include

int main()

{

char str[20];

printf("enter something\n");

scanf("%s", str);

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

return 0;

}

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

输出: Geeks

输入: Computer science

输出: Computer

gets()函数

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

int main()

{

char str[20];

printf("enter something\n");

gets(str);

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

return 0;

}

这里输入将由用户提供如下输入: 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来读取整个字符串。#include

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;

}

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

例子:输入: Geeks for Geeks

输出: Geeks for Geeks

输入: Computer science

输出: Computer science

看完了这篇文章,相信你对C中scanf()和gets()之间的区别是什么有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值