Day 2.几个简单的函数接口 今日份浅学

1.函数接口

(1).fgetc:

  int fgetc(FILE *stream);

  功能:从流中度区下一个字符

  参数:

      stream:文件流指针

  返回:

     成功返回ASCII值  失败返回 EOF  读到文件末尾返回EOF

练习:

读出文件内容的行数

#include <stdio.h>int main (void)
{FILE *fp = NULL;char ch = 0 ;fp = fopen ("file.txt","r");if (fp ==NULL){perror("file to fopen");return -1;}int i = 0;while(1){ch = fgetc(fp);if (ch == '\n'){++i;}if (EOF == ch){   break;}//	printf ("ch = %c\n",ch);}printf ("len = %d\n",i);fclose(fp);return 0;
}

(2).fgetc/fputc与getchar/putchar的区别   (等价)

        char ch = 0;
        ch = getchar();
        ch = fgetc(stdin);

        char ch = 'a'
        putchar(ch);
        fputc(ch, stdout);

练习:

实现将一个文件中的内容拷贝到另一个文件中

#include <stdio.h>int main (void)
{FILE *fp = NULL;  char ch = 0 ;FILE *fq = NULL;  //定义两个文件的指针流 fp = fopen ("file.txt","r");   //读取源文件并用fp接收fq = fopen ("file1.txt","w");   //创建一个文件并写入 用fq接收if (fp == NULL)               {perror("file to fopen");     //判断是否有源文件 没有则返回-1return -1;}if (fq == NULL){perror("file1 to fopen");    //判断是否有目标文件  没有则返回-1return -1;}while(1)         //进入循环{ch = fgetc(fp);    //将源文件读到的每个字符用ch接收if (EOF == ch){   break;           //直到将最后一个字符读完 跳出循环}fputc(ch,fq);    //将读到的每个字符依次写入到目标文件中}fclose(fp);     fclose(fq);    //释放掉这两个文件指针的缓冲区return 0;
}

(3).fputs

     int fputs(const char *s,FILE *stream);

     功能:向流写入一个字符串

    参数:

          s:字符串收首地址

 stream:文件流指针

   返回值:成功返回非负数  失败返回EOF

练习:

将一个一组数组的一个字符串写入到指定文件按中

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

(4).fgets

  char *fgets(char *s,int size,FILE *stream);

  功能:从流中读取一个字符串

  参数:

      s:存放字符串空的首地址

  size:最多读取字符的个数

stream:文件流指针

  返回值:成功返回存放文件字符串的首地址   失败返回NULL  读到文件末尾返回NULL

练习:

将指定文件的指定字符串中的指定个数的字符读到所定义的数组中

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/452665.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于C/C++的 FindOneOf 查找函数的未知bug

CString str "Martel USB to Serial(COM5)";str.FindOneOf("COM");

leetcode (算法)66.加一(python版)

需求 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 示例 1&#xff1a; 输入&#xff1a;digi…

2024美赛数学建模C题思路+代码

文章目录 1 赛题思路2 美赛比赛日期和时间3 赛题类型4 美赛常见数模问题5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 美赛比赛日期和时间 比赛开始时间&#xff1a;北京时间2024年2月2日&#xff08;周五&#xff…

红外模块详解

和红外有关的模块有很多&#xff0c;比如红外循迹&#xff0c;红外感应&#xff0c;红外发射&#xff0c;红外接收&#xff0c;红外对射&#xff0c;红外编解码等等。 今天我们要介绍的是红外编解码模块&#xff0c;它最常见的应用就是我们家里的电视、空调&#xff0c;当我们…

手工方式安装19.22RU

使用手工方式打RU19.22 参考文档&#xff1a; Supplemental Readme - Grid Infrastructure Release Update 12.2.0.1.x / 18c /19c (Doc ID 2246888.1) 操作步骤&#xff1a; 1 Stop the CRS managed resources running from DB homes. 2 Run the pre root script. 3 Patch G…

不要在吉利银河E8、星纪元ES之间瞎选

文 | AUTO芯球 作者 | 李诞 吉利银河E8和星纪元ES这两款车要怎么选 这是什么问题&#xff1f; 你看着这价格 吉利银河E8 是17.58-22.88万元 星纪元es是19.88-33.98万元 你要用E8高配对比ES低配&#xff1f; 好&#xff01; 想买这两款车的朋友 看完我说的 再做决定也…

Xcode 15 及以上版本:libarclite 库缺少问题

参考链接&#xff1a;Xcode 15 libarclite 缺失问题_sdk does not contain libarclite at the path /ap-CSDN博客 报错: SDK does not contain libarclite at the path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarcl…

基于YOLOv7算法的高精度实时课堂场景下人脸检测系统(PyTorch+Pyside6+YOLOv7)

摘要&#xff1a;基于YOLOv7算法的高精度实时课堂场景下人脸检测系统可用于日常生活中检测与定位人脸&#xff0c;此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别&#xff0c;同时本系统还支持检测结果可视化与导出。本系统采用YOLOv7目标检测算法来训练…

QSlider使用笔记

最近做项目使用到QSlider滑动条控件&#xff0c;在使用过的过程中&#xff0c;发现一个问题就是点滑动条上的一个位置&#xff0c;滑块并没有移动到鼠标点击的位置&#xff0c;体验感很差&#xff0c;于是研究了下&#xff0c;让鼠标点击后滑块移动到鼠标点击的位置。 1、event…

ref和reactive, toRefs的使用

看尤雨溪说&#xff1a;为什么Vue3 中应该使用 Ref 而不是 Reactive&#xff1f; toRefs import { ref, toRefs } from vue;// 定义一个响应式对象 const state ref({count: 0,name: Vue });// 使用toRefs转换为响应式引用对象 const reactiveState toRefs(state);// 现在你…

二分查找------蓝桥杯

题目描述&#xff1a; 请实现无重复数字的升序数组的二分查找 给定一个元素升序的、无重复数字的整型数组 nums 和一个目标值 target&#xff0c;写一个函数搜索 nums 中的target&#xff0c;如果目标值存在返回下标 (下标从0 开始)&#xff0c;否则返回-1 数据范围: 0 < l…

【Linux系统化学习】进程等待

目录 进程等待 进程等待的必要性 进程等待的方法 wait方法 等待一个进程(阻塞等待&#xff09; waitpid方法 任意等待多个进程&#xff08;阻塞等待&#xff09; 父进程获取子进程的退出信息 非阻塞轮询等待 进程等待 进程等待的必要性 之前讲过&#xff0c;子进程退…