73.fseek与宽字符读取文件

Posted 喵小喵~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了73.fseek与宽字符读取文件相关的知识,希望对你有一定的参考价值。

  • fseek
     1 //文件路径
     2     char path[150] = "1.txt";
     3 
     4 
     5     //FILE *pf = fopen(path, "a+");//尾部添加,文件指针在尾部
     6     //FILE *pf = fopen(path, "w+");//文件指针在头部,清空内容
     7     FILE *pf = fopen(path, "r+");//文件指针在头部,不清空内容
     8     fseek(pf, 0, SEEK_END);
     9     fputs("0000000", pf);
    10     fflush(pf);//刷新文件
    11 
    12 
    13     //插入
    14     int length = 10;
    15     for (int i = 0; i < 10;i++)
    16     {
    17         fseek(pf, -7-i-1, SEEK_END);
    18         int ch = fgetc(pf);
    19 //#define SEEK_CUR    1 当前
    20 //#define SEEK_END    2 结束
    21 //#define SEEK_SET    0  开头
    22 
    23         fseek(pf, -i-1, SEEK_END);
    24         fputc(ch,pf);
    25         fflush(pf);//刷新文件
    26     }
    27     fseek(pf, -17, SEEK_END);//a+ 文件指针移动无效
    28                              //r+,文件覆盖
    29     fputs("abcdefg", pf);
    30     fflush(pf);//刷新文件
    31 
    32     fclose(pf);

     

  • 以"rb+"的形式打开文件指针在头部,不清空内容
     1     char path[150] = "1.txt";
     2     FILE *pf = fopen(path, "rb+");//文件指针在头部,不清空内容
     3 
     4     fseek(pf, -20, SEEK_END);//a+ 文件指针移动无效
     5     fputc(8, pf);
     6     fputs("123545", pf);
     7 
     8     rewind(pf);
     9 
    10     char ch;
    11     while ((ch=fgetc(pf))!=EOF)
    12     {
    13         putchar(ch);
    14     }
    15 
    16     fclose(pf);

     

  • 宽字符读取文件
     1 //设定中文
     2     setlocale(LC_ALL, "zh-CN");
     3     wchar_t path[150] = L"Z:\\I\\百度内部员工联系方式.txt";
     4     //文件指针在头部,不清空内容
     5     FILE *pf = _wfopen(path, L"r");
     6     
     7     if (pf==NULL)
     8     {
     9         printf("error");
    10     }
    11     wchar_t wstr[1128] = { 0 };
    12     wchar_t *p = fgetws(wstr, 1128, pf);
    13     wprintf(L"-%s-\n", wstr);
    14     p = fgetws(wstr, 1128, pf);
    15     while (p!=NULL)
    16     {
    17         //输出
    18         wprintf(L"-%s-\n", wstr);
    19         p = fgetws(wstr, 1128, pf);
    20     }
    21 
    22     fclose(pf);

     

以上是关于73.fseek与宽字符读取文件的主要内容,如果未能解决你的问题,请参考以下文章

glassfish任意文件读取漏洞解析

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例

Cpp:将字符串片段解析为元组

C - 读取文件并将文本放入具有动态内存分配的字符指针

这是从片段中获取字符串资源的正确方法吗?

宽字符相关的输入输出