首页 > 其他分享 >《文件篇》读写txt

《文件篇》读写txt

时间:2023-11-16 14:46:50浏览次数:36  
标签:fp 文件 stream int 读写 fseek txt SEEK

stdio.h

fopen(),打开文件

fopen(const char * filename, const char * mode)

其中mode:

"r",read: 为输入操作打开文件,文件必须存在。
"w",write: 为输出操作创建一个空文件,如果文件已存在,则将已有文件内容舍弃,按照空文件对待。
"a",append: 为输出打开文件,输出操作总是再文件末尾追加数据,如果文件不存在,创建新文件。
"r+",read/update: 为更新打开文件(输入和输出),文件必须存在
"w+",write/update: 为输入和输出创建一个空文件,如果文件已存在,则将已有文件内容舍弃,按照空文件对待。
"a+",append/update: 为输出打开文件,输出操作总是再文件末尾追加数据,如果文件不存在,创建新文件。

其中返回值:

如果文件成功打开,返回指向FILE对象的指针,否则返回NULL;

实例:

/* fopen example */
#include <stdio.h>
int main ()
{
  FILE * pFile;
  pFile = fopen ("myfile.txt","w");
  if (pFile!=NULL)
  {
	fputs ("fopen example",pFile);
	fclose (pFile);
  }
  return 0;
}

fprintf(),输出到文件

#include <stdio.h>
int fprintf( FILE *stream, const char *format, ... );

返回值:

若成功则返回输出字符数,若输出出错则返回负值。

程序示例:

#include <stdio.h>
#include <process.h>

  FILE *stream;
  void main( void )
  {
	int i = 10;
	double fp = 1.5;
	char s[] = "this is a string";
	char c = '\n';
	stream = fopen( "fprintf.out", "w" );
	fprintf( stream, "%s%c", s, c );
	fprintf( stream, "%d\n", i );
	fprintf( stream, "%f\n", fp );
	fclose( stream );
	system( "type fprintf.out" );
   }

屏幕输出:

  this is a string
  10
  1.500000

fseek(),按偏移量移动文件指针的位置

#include<stdio.h>
int fseek(FILE *stream, long int offset, int whence)
// 第一个参数stream为文件 指针
// 第二个参数offset为 偏移量 ,正数表示正向偏移,负数表示负向偏移
// 第三个参数origin设定从文件的哪里
// 开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
// SEEK_SET: 文件开头,SEEK_CUR: 当前位置,SEEK_END: 文件结尾
// 其中SEEK_SET,SEEK_CUR和SEEK_END依次为0,1和2.

实例:

fseek(fp,100L,0);把文件内部 指针 移动到离文件开头100字节处;
fseek(fp,100L,1);把文件内部 指针 移动到离文件当前位置100字节处;
fseek(fp,-100L,2);把文件内部 指针 退回到离文件结尾100字节处。
seek(fp, 0L, SEEK_END);解释:文件指针定位到文件末尾,偏移0个字节
fseek(fp,50L,0);或fseek(fp,50L,SEEK_SET);解释:其作用是将位置指针移到离文件头50个字节处

ftell(),返回文件指针的位置

原文链接:https://www.cnblogs.com/dylancao/p/10497227.html

long int ftell(FILE *stream)

实例:

#include <stdio.h>

void main() {
	FILE *fp;
	int length;

	fp = fopen("file.txt", "r");
	// 可以使用SEEK_END常量来将文件指针移动文件末尾。
	fseek(fp, 0, SEEK_END);

	length = ftell(fp);

	fclose(fp);
	printf("Size of file: %d bytes", length);

}

这里file.txt的格式如下:

0x12,0x32

输出结果:

Size of file: 11 bytes

文件内容如下时,

0x12,0x32,3

输出结果如下:

Size of file: 13 bytes

feof(),检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0

标签:fp,文件,stream,int,读写,fseek,txt,SEEK
From: https://www.cnblogs.com/fusio/p/17836187.html

相关文章

  • ASPNET项目打包时遇到错误:无法生成项目输出组内容文件来自Web(活动)
    试试在“解决方案资源管理器”中,刷新目标项目,看看项目中有没有一些文件丢失(以感叹号标识,如下图所示),如果有,将所有这些文件补上或者“从项目中排除”,然后再重新生成安装包。1.检查文件中是否有文件未包括到项目中,2。检查是否项目中有文件前面含有感叹号,特别是图像文件。他们可能是......
  • jenkins上发布项目后将文件推送到另一台服务器build镜像
    1、配置jenkins1)主页面点击managejenkins2)选择SystemConfiguration   3)配置服务器信息,注意密码一定要输入对,还有端口有,一般是默认的22端口,但有的不是默认的22端口,配置好后记得点一下test看是否连接成功   4)配置插件:publish-over-ssh、MSBuildPlugin、.NETSDKSupport......
  • excel公式 提取文件路径
    =SUBSTITUTE(LEFT(@CELL("filename",A1),FIND("[",@CELL("filename",A1))-1),"[","")=SUBSTITUTE(LEFT(@CELL("filename",A1),FIND("[",@CELL("filename",A1))-1),"[","&quo......
  • SDL2+FFmpeg5.0播放视频文件
    一、概述上一节使用SDL2播放了YUV视频文件,本节使用SDL2+FFmpeg5.0播放一个视频文件(只播放视频,不播放声音)播放效果图: 二、代码示例#include"sdl_ffmpeg_play.h"//sdl刷新事件#defineSFM_REFRESH_EVENT(SDL_USEREVENT+1)//sdl退出事件#defineSFM_BREAK......
  • Golang把文件写到excel
    最近有个需求是把看广告的日志转成excelpackagemainimport( "bufio" "encoding/json" "flag" "fmt" "github.com/xuri/excelize/v2" "os" "time")//Ad广告typeAdstruct{ OpenIdstring`json:&quo......
  • MySQL8 安装后 data文件夹迁移
    安装后data文件夹默认在C盘:C:\ProgramData\MySQL\MySQLServer8.0\Data想迁移到D盘:1、停止MySQL服务2、将Data文件夹剪切到D盘3、修改 C:\ProgramData\MySQL\MySQLServer8.0\my.ini,将datadir参数修改为新路径:D:/AMySQL80\Data(注意路径中间是左斜杆,最后一个是右斜杠,全用......
  • 掌握终端基础技巧:Linux下的文件和目录复制操作
    1.cp命令:在Linux中,cp命令用于复制文件和目录。基本语法如下:cp[选项]源文件目标文件其中,源文件是要复制的文件名,目标文件是复制后的新文件名或路径。2.复制单个文件:要复制单个文件,只需指定源文件和目标路径即可。例如,将文件file.txt复制到目录path下:cpfile.......
  • Python读取pdf、word、excel、ppt、csv和txt文件提取所有文本
    前言本文对使用python读取pdf、word、excel、ppt、csv、txt等常用文件,并提取所有文本的方法进行分享和使用总结。可以读取不同文件的库和方法当然不止下面分享的这些,本文的代码主要目标都是:方便提取文件中所有文本的实现方式。这些库的更多使用方法,请到官方文档中查阅。读取PD......
  • springboot大文件上传、分片上传、断点续传、秒传的实现
    本篇攻略将详细介绍如何使用SpringBoot实现大文件上传、分片上传、断点续传和秒传功能。为方便阅读,本文将分为以下几个部分:介绍大文件上传、分片上传、断点续传和秒传的概念详细分析如何实现大文件上传、分片上传、断点续传和秒传功能给出两个示例来说明如何实现大文件上传和......
  • Python 获取指定目录所有深层文件路径(包括子目录下的所有文件)
    importosdefget_all_deep_files_in_folder(folder_path):all_files=[]file_paths=os.listdir(folder_path)foriteminfile_paths:fp=os.path.join(folder_path,item)ifos.path.isfile(fp):all_files.append(fp)......