linux puts fputs fgets gets 函数

本文详细探讨了C语言中puts、fgets和fputs函数的使用。puts函数会在输出字符串末尾自动添加换行符,而fgets在读取输入时会将换行符包含在内,fputs在输出时不自动添加换行。通过实例代码展示了这三个函数的交互效果,强调了理解和掌握这些基本输入输出函数的重要性。
摘要由CSDN通过智能技术生成

前言

前一节讲了刷新缓存函数 无缓存函数都可以 不输入到内核态的问题
并且注意 fputs 因为是写函数 同时他可以有输出功能。
这节讲讲 puts fputs fgets gets 函数 会不会把换行符放到缓存里面 验证一下 

<上一节的无缓存和刷新缓存函数>

puts 函数 单独使用

在这里插入图片描述

#include<stdio.h>

int main()
{
   int rst = puts("hello");
   printf("byte is %d\n",rst);
   
   return 0;
}

在这里插入图片描述

puts 输出时会添加新行符

gets fputs 函数 配合使用

#include<stdio.h>

int  main()
{
    int len;
             
    char writebuff[128]={0};
    
    gets(writebuff);//输出
    len=strlen(writebuff);//计算字符串长度
   
   printf("len is %d\n",len);

   fputs(writebuff,stdout);
  
  return 0;

}

gets 是输入函数 就是在读取键盘输入的值 
并且配合fputs的功能使用 gets  看效果

在这里插入图片描述

有警告 没事   因为我的输入函数 gets 形参数组我给了明确的大小 导致的

在这里插入图片描述
在这里插入图片描述

gets(输入) 的长度没变 所以换行符没加进去
fputs (输出)没有在结束前换行 所以换行符没加进去
所以 fputs gets 都不会把换行符放进缓存

fgets fputs 函数 配合使用

在这里插入图片描述

 fgets 是输入  把最后形参改为 stdin 就行了 
#include<stdio.h>

int  main()
{
    int len;
                
    char writebuff[128]={0};

   fgets(writebuff,128,stdin);// 输入

   len=strlen(writebuff);//计算字符串长度

   printf("len is %d\n",len);

   fputs(writebuff,stdout);//输出 
 
  return 0;

}

在这里插入图片描述

这里的  fgets 会把换行符放进缓存 
printf有一个换行符 这就导致了 fputs原本没有换行符放进存放的 
应该后面是不换行的 导致现在在后面换行了
不用太纠结。 
主要是明白fgets的功能就行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值