C语言的输入----fgets()

本文介绍了C语言中输入函数fgets()的使用,对比了scanf()的局限性,强调fgets()在处理空格和防止数据溢出方面的优势。通过示例代码解释fgets()的参数含义,并指出当配合用户输入的长度使用时可能出现的问题。
摘要由CSDN通过智能技术生成

初学者对C语言的一点理解

C语言的输入----fgets()

  • 一开始初学的时候,我喜欢用scanf,因为这几乎是所有老师第一个教给学生的输入的函数,不得不承认,在初学的时候,在情况不那么复杂的时候,这的确是一个非常好用的函数,但是在后来的c语言实习过程中,我发现这并不是一个非常好用的函数,特别是涉及到空格的输入的时候,比如说要去检查一篇文章的字数的时候,这时候就要涉及到大量的空格,但scanf遇到空格就会重新检查输入,所以我上网检索了资料,在CSDN上我发现可以使用gets函数来使其遇到空格不停止,但是在我的Mac上面运行的时候我发现,这玩非常的不安全,因为他会数据溢出,所以我又在网上搜索,有没有一种方法防治数据溢出,我虽然没有找到防治溢出的方法,但是我找到了gets的替代品,那就是我今天要重点介绍的fgets函数,这种函数可以有效的防治数据的溢出,原因很简单,因为它限制了数据输入的“容量”。代码如下:

    include <stdio.h>
    int main(void)
    {
    char str[20]; /定义一个最大长度为19, 末尾是’\0’的字符数组来存储字符串/
    printf(“请输入一个字符串:”);
    fgets(str, 10, stdin); /从输入流stdin即输入缓冲区中读取10个字符到字符数组str中/
    printf("%s\n

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值