• C语言文件读写


    文件结构体_finddata_t

    c语言中对文件的操作需要用到 _finddata_t ,引用 #include<io.h>

    结构体定义如下:

      struct _finddata32_t {
        unsigned attrib;//文件属性的存储位置
        __time32_t time_create;//createtime
        __time32_t time_access;//文件最后一次被访问的时间
        __time32_t time_write;//文件最后一次被修改的时间
        _fsize_t size;//文件的大小(字节数表示)
        char name[260];//文件的文件名
      };
    

    如何存储到文件结构体中_finddata_t

    将文件内容信息读写等操作需要_findfirst()、_findnext()和_fineclose()三个函数的搭配使用

    _findfirst()

    _findnext()

    _fineclose()

    查找D盘下ttt.txt文件,并打印出文件名称及文件大小(按字节数表示)代码如下:

    //文件及查找 
    #include<io.h>
    #include <iostream>
    #include <string.h>
    #include <string>
    
    #define ADDR "D://ttt.txt";
    
    const  char* SreachAddr=ADDR;  
    
     int main(int argc, char** argv) {
     	__finddata64_t FileInfo;
     	long Handle=_findfirsti64(SreachAddr,&FileInfo);
     	if(-1==Handle)
     	{
    		return -1; 
    	}
    	printf("name=%s,size=%d
    ",FileInfo.name,FileInfo.size);
    	
    	while(!_findnexti64(Handle,&FileInfo))
    	{
    		printf("%s
    ",FileInfo.name);
    	}
    	_findclose(Handle);
    	system("pause");
    	return 0;
     }
    

    重定位文件位置指针

    fseek

    函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere(偏移起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
    fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。

    int fseek(FILE *stream, long offset, int fromwhere);
    

    ftell()

    ftell()用来取得文件流目前的读写位置. 参数stream 为已打开的文件指针.

    rewind

    将文件内部的位置指针重新指向一个流(数据流/文件)的开头

    fopen

    需要引入 #include <stdio.h>


  • 相关阅读:
    六. 异常处理5.多重catch语句的使用
    六. 异常处理4.try和catch的使用
    六. 异常处理3.未被捕获的异常
    六. 异常处理2.异常类型
    对mysql数据库中字段为空的处理
    mysql 中实现多条数据同时更新
    java 用PDFBox 删除 PDF文件中的某一页
    java7 java MethodHandle解析
    【十四】jvm 性能调优实例
    【十三】jvm 性能调优工具之 jstack
  • 原文地址:https://www.cnblogs.com/falcon-fei/p/11060179.html
Copyright © 2020-2023  润新知