C语言rewind()函数(设置文件位置为给定流 stream 的文件的开头)(回到文件开头重读)

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言rewind()函数(设置文件位置为给定流 stream 的文件的开头)(回到文件开头重读)相关的知识,希望对你有一定的参考价值。

C 标准库 - <stdio.h>

文章目录

描述

C 库函数 void rewind(FILE *stream) 设置文件位置为给定流 stream 的文件的开头。

声明

下面是 rewind() 函数的声明。

void rewind(FILE *stream)

参数

  • stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了流。

返回值

该函数不返回任何值。

实例

下面的实例演示了 rewind() 函数的用法。

#pragma warning(disable : 4996)
#include <stdio.h>

int main()

    char str[] = "This is test";
    //char str[] = "1234";

    FILE* fp;
    int ch;

    /* 首先让我们在文件中写入一些内容 */
    fp = fopen("file.txt", "w");
    fwrite(str, 1, sizeof(str), fp);    //(写的内容, 每次写的字节,写的次数,写入目标文件)
    //fwrite(str, 1, sizeof(str), fp);
    //fwrite(str, 2, sizeof(str)/2, fp);    //(写的内容, 每次写的字节,写的次数,写入目标文件)
    fclose(fp);

    fp = fopen("file.txt", "r");
    while (1)
    
        ch = fgetc(fp);
        if (feof(fp))
        
            break;
        
        printf("%c", ch);
    
    rewind(fp); //回到文件开头
    printf("\\n");
    while (1)
    
        ch = fgetc(fp);
        if (feof(fp))
        
            break;
        
        printf("%c", ch);

    
    fclose(fp);

    return(0);

VS上编译运行结果:

This is test
This is test
F:\\Arnold_Test\\20211223_jsonTest\\jsonTest\\Debug\\jsonTest.exe (进程 60852)已退出,代码为 0

VS上写文件就是会在后面加\\r\\n,反正可能会导致一些问题

参考文章:C 库函数 - rewind()

以上是关于C语言rewind()函数(设置文件位置为给定流 stream 的文件的开头)(回到文件开头重读)的主要内容,如果未能解决你的问题,请参考以下文章

C语言文件指针定位函数fseek与rewind有何区别?

C语言文件指针定位函数fseek与rewind有何区别?

C语言笔记C语言文件操作全解

C语言 文件读写 ftell 函数

fread函数的用法

C语言期末第一弹