fgetc、fputs、fgets函数使用及实例——Linux编程——day2

2024-02-05 16:44

本文主要是介绍fgetc、fputs、fgets函数使用及实例——Linux编程——day2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天主要学习了fgetc、fputs、fgets函数的使用规则

fgets

int fgetc(FILE *stream);功能:从流中读取下一个字符参数:stream:文件流指针返回值:成功返回读到字符的ASCII码值失败返回EOF读到文件末尾返回EOF

示例:编写程序统计文件的行数

该示例主要统计stdio.h文件中的行数
#include<stdio.h>int main(void)
{FILE *p = NULL;p = fopen("/usr/include/stdio.h","r");if(NULL == p){perror("fail to fopen!");return -1;}char ch;int i = 0;while(EOF != (ch = fgetc(p))){if('\n' == ch){++i;}}fclose(p);printf("line = %d\n",i);return 0;
}

在这里插入图片描述

fgetc/fputc与getchar/putchar的区别

char ch = 0;
ch = getchar();
ch = fgetc(stdin);char ch = 'a'
putchar(ch);
fputc(ch, stdout);

示例:实现将一个文件中的内容拷贝到另一个文件中
我们首先在file.txt文件中写入hello world china!,将其拷贝到a.txt文件中

#include<stdio.h>int main(void)
{FILE *src = NULL;FILE *dest = NULL;char ch;src = fopen("file.txt","r");dest = fopen("a.txt","w");if(NULL == src || NULL == dest)		//打开失败,直接返回{perror("fail to fopen");return -1;}while(EOF != (ch = fgetc(src))){fputc(ch,dest);}printf("save success!\n");fclose(src);fclose(dest);return 0;
}

在这里插入图片描述
可以看到,复制文件成功。

fputs

int fputs(const char *s, FILE *stream);功能:向流中写入一个字符串参数:s:字符串首地址stream:文件流指针返回值:成功返回非负数失败返回EOF

示例:在file.txt文件中写入:hello world!

#include<stdio.h>int main(void)
{FILE *stream;stream = fopen("file.txt","w");char s[20] = "hello world!";if(NULL == stream){perror("fail to fopen");return -1;}fputs(s,stream);printf("success!\n");fclose(stream);return 0;
}

结果:
在这里插入图片描述

fgets

char *fgets(char *s, int size, FILE *stream);功能:从流中读取一个字符串参数:s:存放字符串空间首地址size:最多读取字符的个数stream:文件流指针返回值:成功返回存放字符串空间的首地址失败返回NULL读到文件末尾返回NULL

示例:刚刚在file.txt文件中写入了字符串,现在将其输出出来

#include<stdio.h>int main(void)
{FILE *src = NULL;src = fopen("file.txt","r");char ch[20];if(NULL == src){perror("fail to fopen");return -1;}fgets(ch,sizeof(ch),src);printf("%s\n",ch);fclose(src);return 0;
}

结果:
在这里插入图片描述

以上就是今天全部内容

这篇关于fgetc、fputs、fgets函数使用及实例——Linux编程——day2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/681544

相关文章

Python中Tkinter GUI编程详细教程

《Python中TkinterGUI编程详细教程》Tkinter作为Python编程语言中构建GUI的一个重要组件,其教程对于任何希望将Python应用到实际编程中的开发者来说都是宝贵的资源,这篇文... 目录前言1. Tkinter 简介2. 第一个 Tkinter 程序3. 窗口和基础组件3.1 创建窗

C#中checked关键字的使用小结

《C#中checked关键字的使用小结》本文主要介绍了C#中checked关键字的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录✅ 为什么需要checked? 问题:整数溢出是“静默China编程”的(默认)checked的三种用

C#中预处理器指令的使用小结

《C#中预处理器指令的使用小结》本文主要介绍了C#中预处理器指令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 第 1 名:#if/#else/#elif/#endif✅用途:条件编译(绝对最常用!) 典型场景: 示例

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb

Mysql中RelayLog中继日志的使用

《Mysql中RelayLog中继日志的使用》MySQLRelayLog中继日志是主从复制架构中的核心组件,负责将从主库获取的Binlog事件暂存并应用到从库,本文就来详细的介绍一下RelayLog中... 目录一、什么是 Relay Log(中继日志)二、Relay Log 的工作流程三、Relay Lo

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

Nginx服务器部署详细代码实例

《Nginx服务器部署详细代码实例》Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,:本文主要介绍Nginx服务器部署的相关资料,文中通过代码... 目录Nginx 服务器SSL/TLS 配置动态脚本反向代理总结Nginx 服务器Nginx是一个‌高性

SpringBoot整合AOP及使用案例实战

《SpringBoot整合AOP及使用案例实战》本文详细介绍了SpringAOP中的切入点表达式,重点讲解了execution表达式的语法和用法,通过案例实战,展示了AOP的基本使用、结合自定义注解以... 目录一、 引入依赖二、切入点表达式详解三、案例实战1. AOP基本使用2. AOP结合自定义注解3.